How to find the coordinates of edge from a figure and plot it on a separate/second figure?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Zhou Ci
il 26 Nov 2023
Commentato: Walter Roberson
il 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;
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 Commenti
Risposta accettata
Walter Roberson
il 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 Commenti
Walter Roberson
il 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 ?
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!