Mean line of object boundary
조회 수: 3 (최근 30일)
이전 댓글 표시
I have sample picture as above. I want to find average line of this object. Who have any idea to do that?
댓글 수: 1
채택된 답변
Mohammad Abouali
2015년 1월 4일
Another Approach could be this:
B1=bwmorph(logical( round( double(imread('1_1.bmp'))/255 ) ),'skel','inf');
B2=bwmorph(logical( round( double(imread('1_2.bmp'))/255 ) ),'skel','inf');
B3=bwmorph(logical( round( double(imread('1_3.bmp'))/255 ) ),'skel','inf');
D1=bwdist(B1);
D2=bwdist(B2);
D3=bwdist(B3);
D=D1+D2+D3;
mask=bwmorph(bwmorph(D<50,'thin','inf'),'spur',100);
FinalImage(:,:,1)=B1+mask;
FinalImage(:,:,2)=B2+mask;
FinalImage(:,:,3)=B3+mask;
Although I have to mention that this is not averaging the borders. The resulting border is the white line in the following image:
댓글 수: 2
Image Analyst
2015년 1월 5일
Looks like you're all set. If you do want the average though, you can still use my code.
추가 답변 (1개)
Image Analyst
2015년 1월 3일
How about this method:
Convert to binary images and AND them then find the centroid and send out rays from the centroid to each perimeter to find the radii. Then average the radii. Could use cart2pol and pol2cart to help.
Can you supply the 3 lists of (x,y) or (row, column) coordinates?
댓글 수: 6
참고 항목
카테고리
Help Center 및 File Exchange에서 Lighting, Transparency, and Shading에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!