How to intersect 6 binary images?
    5 views (last 30 days)
  
       Show older comments
    
    Ivan Shorokhov
      
 on 15 Jul 2015
  
    
    
    
    
    Commented: Ivan Shorokhov
      
 on 15 Jul 2015
            Given: I have 6 binary image:
Want: I want to intersect those 6 images to get the objects which will appear in all images.
Currently done:
I can do it manually, such as:
AllImages = cont{1} & cont{2} & cont{3} & cont{4} & cont{5} & cont{6};figure; imshow(inBothImages);
Needed: I'm wondering how to make a loop for it?
Such as:
if length(num)>2
   for m = 2:length(num(num>0))
       AllImages  = cont{num(1)} & cont{num(m)} 
   end
end
But it did't work.
[ACKNOWLEDGMENTS]
Thank you Guillaume!
[MATLAB version]
R2014a
0 Comments
Accepted Answer
  Guillaume
      
      
 on 15 Jul 2015
        The simplest way is to concatenate all your images in a higher dimension and simply use all in that higher dimension.
If your images are 2d:
AllImages = all(cat(3, cont{:}), 3); %that's it all done.
or for a generic cell array of Nd images:
higherdim = ndims(cont{1}) + 1;
AllImages = all(cat(higherdim, cont{:}), higherdim);
More Answers (0)
See Also
Categories
				Find more on Convert Image Type in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!