필터 지우기
필터 지우기

An edge outline segmentation suggestion please

조회 수: 5 (최근 30일)
Stelios Fanourakis
Stelios Fanourakis 2019년 8월 8일
댓글: Stelios Fanourakis 2019년 8월 21일
Dear All
Here is a very interesting and challenging task you may contribute to help me.
I have an ultrasound image with annotations (see attached image [annotations.png]) that I'd like to auto segment/outline.
I also attach another image using the method of P. Pandey [https://gitlab.com/prashp/shadow-peak-us-bone-seg/blob/master/readme.md (Pandeysuccess.png)] and a similar approach using a simple Sobel edge command [Sobeledge.png].
As you can see from the annotated image, there are two regions that are interested to me. An upper curve line that is an interface between human skin and a standoff material and the lower small curve which is the bone boundary.
A satisfactory result comes from both Pandey technique and edge technique. However, the edge technique comes with a lot of noise and speckle dots.
I'd like to ask a way to reproduce Pandey's technique somehow, maybe by using a more simplistic method, to get those two outlines as they appear in the image of Pandey's technique. If those two lines at some points come disconnected with gaps, there must be a way, e.g. by using a dijkstra algorithm to find the shortest path between the dots and pieces in order to form a seamless line by connecting them and of course discard all the speckle noise and blobs smaller than a minimum size, to clear the image and isolate those two lines as can be seen by Pandey's technique.
Finally, I am looking for a method to place a contour upon the white pixels of the image. The white pixels of the image ideally should be only the standoff outline and bone outline. All others should be eliminated. The contour lines upon the white pixels should be closed in order to form a 3d reconstructed object.
Any advice from the Matlab experts should be appreciated more than enough.

채택된 답변

Subhadeep Koley
Subhadeep Koley 2019년 8월 20일
You can return all edges that are stronger than a specified threshold to minimize the effect of noise and speckle dots. Refer the documentation here.
I=imread('your_ultrasound.jpg');
Iedge=edge(rgb2gray(I),'canny',[0.1 0.3]);% define high and low threshold here
figure;imshow(Iedge,[]);
Now, to place a contour upon the detected edge use the following code,
Iedge=uint8(Iedge);
Iedge_rgb = cat(3,Iedge,Iedge,Iedge);
figure;imshow(Iedge_rgb);
hold all;
contour(Iedge);colormap(hsv);
contour.png
  댓글 수: 1
Stelios Fanourakis
Stelios Fanourakis 2019년 8월 21일
A very nice and very interesting result. Bless you Subhadeep

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Biomedical Imaging에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by