How to select a region if we click inside it?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Meshooo
am 8 Jan. 2014
Kommentiert: Image Analyst
am 24 Okt. 2016
Dear all,
I have a binary image same as the one I show here which contains few honeycomb regions connected to each other. Now I want a single honeycomb to be selected when the user makes a left click using the mouse inside the desired honeycomb. Any idea how

to do that?
Any suggestions will be appreciated.
Sincerely, Mueshoo
0 Kommentare
Akzeptierte Antwort
Matt J
am 8 Jan. 2014
Use WAITFORBUTTONPRESS and get(gca,'CurrentPoint') to detect the location of the click.
Then use INPOLYGON to detect which honeycomb was selected.
3 Kommentare
Matt J
am 14 Jan. 2014
For example the rows of V
V=[0 0 ; 1 0; 0 1]
are vertices of a triangle.
Since (0.1,0.2) lies inside the triangle, this returns true
>>inpolygon(0.1,0.2,V(:,1),V(:,2))
ans =
1
and conversely this returns false,
>> inpolygon(.1,1.2,V(:,1),V(:,2))
ans =
0
Weitere Antworten (1)
Image Analyst
am 15 Jan. 2014
Mustafa: Here's how to do it step by step:
- invert the image
- call imclearborder
- label the binary image with bwlabel
- call [column, row] = int32(ginput(1)) to let the user click somewhere
- get the label with labelNumber = labeledImage(row, column)
- extract the object with extractedObject = ismember(labeledImage, labelNumber)
- Make it binary again binaryImage = extractedObject > 0;
- display it with imshow(binaryImage, []);
See if you can program that up and attach your code if you have problems.
6 Kommentare
YEIMY LISETH QUINTANA VILLAMIZAR
am 23 Okt. 2016
Can you help me? please,
I need that the program recognize a image of another image, loading a image that is a circle and loading other that is a ellipse.
How I can make that the program recognize that the image is a circle or a ellipse ?
Image Analyst
am 24 Okt. 2016
See my shape recognition demo, attached.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!