How to find the coordinates of edge from a figure and plot it on a separate/second figure?

조회 수: 1 (최근 30일)
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.

채택된 답변

Walter Roberson
Walter Roberson 2023년 11월 26일
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
Zhou Ci
Zhou Ci 2023년 11월 26일
So, should I save my figure as png? Or which format is best to save such kind of figure?
Walter Roberson
Walter Roberson 2023년 11월 26일
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 ?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by