finding maximum abs value of four images

I have four 16x16 images.I want to form another image by taking the maximum abs value of all four values of a particular pixel e.g. by comparing I1(3,3),I2(3,3),I3(3,3) and I4(3,3),I will be getting I5(3,3).
my piece of code is:
for k:4
.......
figure,imshow(B);
s=size(B)
eval(sprintf('im_%d=B;',k));
end

댓글 수: 1

Avoid using EVAL to hide an index in the name of a variable. It is much easier, nicer and more efficient to use an index as index:
im = cell(1, 4);
for k = 1:4
...
im{k} = B;
end

댓글을 달려면 로그인하십시오.

 채택된 답변

Matt Kindig
Matt Kindig 2013년 3월 16일

1 개 추천

No loops necessary:
CombinedImages = cat(3, I1, I2, I3, I4)
I5 = max(abs(CombinedImages),[],3)

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 16일

0 개 추천

[n,m]=size(im1);
for k=1:n
for p=1:m
v=[im1(k,p) im2(k,p) im3(k,p) im4(k,p)];
[~,idx]=max(abs(v));
im(k,p)=v(idx);
end
end

카테고리

도움말 센터File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by