how to trace ordered external counter of an object
이전 댓글 표시
Hello,I need to order point on boundary.I have a logical image so I use bwtraceboundary, but the results is a Bb matrix empty.Can someone help me to understand the reason?I wrote this code:
[filename,pathname]=uigetfile('*.jpg');
im=imread([pathname filename]);
figure,imshow(im,[])
T=graythresh(im);
It=im2bw(im,T);
figure, imshow(It,[])
Bb=bwtraceboundary(It,[12 33],'E',8,Inf,'clockwise')
where r=12 e c=33 is the first pixel of the boundary that I want to order. I attach also the image. Thank you
채택된 답변
추가 답변 (1개)
Image Analyst
2015년 5월 30일
0 개 추천
To get ordered points, use the much simpler bwboundaries(). You only would need to use bwtraceboundaries() if you, for some reason, wanted to start at one special, known pixel location. I have never ever needed to do that in all my image processing with MATLAB, or even before (that I can remember). The starting point just doesn't make any difference to me. It can start wherever it wants to as far as I'm concerned. That relieves me of having to find a starting point, which is not easy, or at the very least, a step that does not need to be done with bwboundaries(). Are you sure you need to start at one specific point? If so, why?
댓글 수: 5
Image Analyst
2015년 5월 30일
% bwboundaries() returns a cell array, where each cell contains the row/column coordinates for an object in the image.
% Plot the borders of all the coins on the original grayscale image using the coordinates returned by bwboundaries.
imshow(originalImage);
title('Outlines, from bwboundaries()', 'FontSize', captionFontSize);
axis image; % Make sure image is not artificially stretched because of screen's aspect ratio.
hold on;
boundaries = bwboundaries(binaryImage);
numberOfBoundaries = size(boundaries, 1);
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
plot(thisBoundary(:,2), thisBoundary(:,1), 'g', 'LineWidth', 2);
end
hold off;
Silvia Caruso
2015년 5월 30일
Image Analyst
2015년 5월 30일
The image is not able to display. Perhaps you want the minimal perimeter polygon, like in this discussion: http://www.mathworks.com/matlabcentral/answers/44072#comment_90696
Silvia Caruso
2015년 5월 30일
편집: Silvia Caruso
2015년 5월 30일
Image Analyst
2015년 5월 30일
OK, good luck. What a funny coincidence -- that is the same paper Walter mentioned in the link I gave you in my last comment. I have not done that before so I don't have any code for it.
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!