Geometric shape detection with regionprops
    6 views (last 30 days)
  
       Show older comments
    
    Simon Dussault
 on 8 Feb 2013
  
    
    
    
    
    Commented: Ahaana Khurana
 on 4 Feb 2020
            Hi i want to modified hte code i have to be abble to detect horizontal rectangle and vertical rectangle. Right now, the code i have can detect square circle and triangle real well. So how should i modify the extent and eccentricity for detecting rectangles?
Here's the code :
function [Boxes] = ObjDt(InputImg)   %Rajouté BoxesPos
% function determining whether the unknown objects by their geometric shape
% count the number of found objects
Index=1;
% structure to store the coordinates of the outlines of the detected objects
Boxes=struct('Box',[]);
% BoxesCell=struct2cell(Boxes);   %Rajouté pour avoir les Coordonnées dans un vecteur
% BoxesPos=cell2mat(BoxesCell);  %Rajouté pour avoir les Coordonnées dans un vecteur
for s=1:3
      %color filtration
      img = double(ColorDt(InputImg,s));
      % determine the number of objects in the image
      [imgN, num] = bwlabel(img,4);
      % obtain the properties of detected objects
      f = regionprops(imgN,'BoundingBox','Centroid','Extent','Eccentricity'); %Changer imfeature pour regionprops
      %square
      for i=1:num
          if(f(i).Extent>=0.78) & (f(i).Extent<0.95) & (f(i).Eccentricity<0.9) & (f(i).Eccentricity>=0.2)
              Boxes(Index).Box=f(i).BoundingBox;
              Index=Index+1;
          end    
      end
      %circle
      for i=1:num
          if(f(i).Extent<0.78) & (f(i).Extent>=0.65) & (f(i).Eccentricity<0.8) & (f(i).Eccentricity>0.3)
              Boxes(Index).Box=f(i).BoundingBox;
              Index=Index+1;
          end  
      end
      %triangle
      for i=1:num
          if(f(i).Extent>0.3) & (f(i).Extent<0.6) & (f(i).Eccentricity<0.8) & (f(i).Eccentricity>0.2)
              Boxes(Index).Box=f(i).BoundingBox;
              Index=Index+1;
          end        
      end    
  end
end
2 Comments
Accepted Answer
  Image Analyst
      
      
 on 8 Feb 2013
        No, you don't look at the eccentricity. You can look either at the orientation, or check the width vs. height of the bounding box.
0 Comments
More Answers (1)
  Paul
 on 22 Feb 2014
        Hello,
I am very interested in what you are doing. I have been doing research for undergraduate and would like to know more about your program. Would this program find how many circle objects are in an RGB image? Email : pfon1800@students.vsu.edu Cell : 3017934167
1 Comment
  Image Analyst
      
      
 on 22 Feb 2014
				See Also
Categories
				Find more on Coordinate Systems 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!



