How to add two binay images and add the result to a third image?

1 Ansicht (letzte 30 Tage)
Dear all,
I have one array that includes 5 binary images [I1, I2, I3, I4, I5].
I want to have a new array [R1, R2, R3, R4] where:
R1 = I1 + I2
R2 = R1 + I3
R3 = R2 + I4
R4 = R3 + I5
How to make a for loop for that?
Any help will be very appreciated.
Thank you very much.
Meshoo

Akzeptierte Antwort

Image Analyst
Image Analyst am 18 Aug. 2014
Try this:
R1 = int32(I1) + int32(I2);
R2 = R1 + int32(I3);
R3 = R2 + int32(I4);
R4 = R3 + int32(I5);
output_R = [R1, R2, R3, R4];
imshow(output_R, []); % The [] are important.
  8 Kommentare
Meshooo
Meshooo am 19 Aug. 2014
Bearbeitet: Meshooo am 19 Aug. 2014
Thank you very much. Your program will add all the binary images, but actually I want the flow of the program to be in the same way I explained before, because I am doing other operations (adding the binary was just an example).
So how to make a new array R[ ] that contains four binary images R1, R2, R3, R4.
R1 = I1 + I2
R2 = R1 + I3 % do something
R3 = R2 + I4
R4 = R3 + I5
Image Analyst
Image Analyst am 19 Aug. 2014
Not a good idea. Remember you said "Sometimes I have 100, 120, etc." So now I refer you to the FAQ about why this is a bad idea: http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Ahmet Cecen
Ahmet Cecen am 18 Aug. 2014
Here is how to make a loop for that:
R(:,1)=I(:,1)+I(:,2); %Initialization
for i=2:4
R(:,i)=R(:,i-1)+I(:,i+1); %This is the loop that you asked for.
end
  5 Kommentare
Meshooo
Meshooo am 18 Aug. 2014
Thank you all for your comments. Is there some way to do it directly without any reshaping?
Image Analyst
Image Analyst am 18 Aug. 2014
Yes. Did you read our comments about what information is required?

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by