How to get matrix indices from roipoly
Afficher commentaires plus anciens
I have a matrix that I want to extract an ROI from. I am using roipoly to clip the region. The syntax below gives the coordinates of the polygon in the intrinsic coordinate system, I believe. How can I get the matrix indices for each vertex of the polygon?
tst = rand(100);
[xrefout,yrefout,BW,xi2,yi2] = roipoly(tst);
I select some square.
xi2 and yi2 are real valued. To get the pixel value, does one just round xi2 and yi2 to the nearest integer?
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 10 Sep 2021
Try using the mask roipoly() returns:
tst = imread('moon.tif'); % Get some matrix.
imshow(tst); % Display it.
% Ask user to use roipoly.
message = sprintf('Left click vertices.\nRight click last point.\nThen double click inside when you are all done.');
uiwait(helpdlg(message));
mask = roipoly(tst);
% Extract values inside the polygon they drew.
valuesInsideMask = tst(mask)
4 commentaires
Paul Safier
le 10 Sep 2021
Image Analyst
le 11 Sep 2021
Why do you need only the vertices? What will you do then, once you have them? Nothing further?
Paul Safier
le 11 Sep 2021
Image Analyst
le 11 Sep 2021
There is also a drawpolygon() function that you might like.
Catégories
En savoir plus sur Region and Image Properties dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!