How to find the coordinates of edge from a figure and plot it on a separate/second figure?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Zhou Ci
am 26 Nov. 2023
Kommentiert: Walter Roberson
am 26 Nov. 2023
Hello,
I am trying to find out the coordinates of the edge from this figure but it doesn't work for me. These are actually 35 bins in the image. I don't want any ellipse or rectangle around it. I want a proper boundary around these bins because I want to display that boundary in another figure. Here's the image;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1552412/image.jpeg)
I have tried this;
I = imread('myimage.jpg'); %2598x3071x3 uint8
II = rgb2gray(I);
edgeimage = edge(II, 'Canny');
[x y] = find(edgeimage);
Any help would be appreciated.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 26 Nov. 2023
I = imread('myimage.jpg'); %2598x3071x3 uint8
is_occupied = any(I ~= 255,3);
B = bwboundaries(is_occupied); %https://www.mathworks.com/help/images/ref/bwboundaries.html#bu1wval-1-B
However... you are using a jpg. It is almost guaranteed that jpg will give you the wrong results for this purpose. jpg is trash on sharp boundaries. Do not use jpg for any scientific measurement -- not unless the measurement you are doing is of exactly how trash jpg is for scientific use.
2 Kommentare
Walter Roberson
am 26 Nov. 2023
png would definitely be better than jpg .
However... if you have the data available to save into an image file, then why not work directly with the data instead of with the image of the data ?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!