Geometric shape detection with regionprops

11 Ansichten (letzte 30 Tage)
Simon Dussault
Simon Dussault am 8 Feb. 2013
Kommentiert: Ahaana Khurana am 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 Kommentare
Susenjit Ghosh
Susenjit Ghosh am 29 Dez. 2017
what to enter in input image while running
Ahaana Khurana
Ahaana Khurana am 4 Feb. 2020
The code is not working. Pls check the code and revert

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Image Analyst
Image Analyst am 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.

Weitere Antworten (1)

Paul
Paul am 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

Community Treasure Hunt

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

Start Hunting!

Translated by