Error with bwtraceboundary function

2 ビュー (過去 30 日間)
ttopal
ttopal 2017 年 2 月 14 日
コメント済み: ttopal 2017 年 2 月 14 日
Hi all,
I have a function where I have a set of x,y coordinates for points to a contour as input. I calculate its derivatives using spline interpolation. When I take ellipse or circle, i can manually calculate 8 points on contour and use this. But When I draw an arbitrary shape like this:
i need to get a point set first. It seems to me that bwtraceboundary is the function that i need to use, here is the code that i write; i check the beginning points with pixelinfo
I = imread('example3.png');
figure(1)
imshow(I)
BW = im2bw(I);
figure(2)
imshow(BW)
impixelinfo
contour = bwtraceboundary(BW,[r c],'W',8,Inf,'counterclockwise');
figure(3)
imshow(I)
hold on;
plot(contour(:,2),contour(:,1),'g','LineWidth',3);
it gives me an empty contour.
Actually as I will always have a two color picture and one boundary there might be an easier way.
Any suggestion?
  1 件のコメント
ttopal
ttopal 2017 年 2 月 14 日
I am checking the pixel values of binary image, where i have the contour it shows 0 and empty area as 1. Cant i change it to be otherwise? Then
[rows, columns] = find(BW ~= 0)
should be all I need. Am I wrong?

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2017 年 2 月 14 日
The [r, c] you supply needs to be a point that is on the boundary. You do not show how you set [r, c]
You can use find() to locate a pixel.
  3 件のコメント
Walter Roberson
Walter Roberson 2017 年 2 月 14 日
Yes you need to reverse your mask so that the boundary is 1 and the background is 0
ttopal
ttopal 2017 年 2 月 14 日
Thanks Walter, now I have the contour correct with this code :
I = imread('example3.png');
figure(1)
imshow(I)
IM = im2bw(I);
IM2 = imcomplement(IM);
[r, c] = find(IM2, 1, 'first');
mycontour = bwtraceboundary(IM2, [r c] ,'E',8,Inf,'counterclockwise') ;
figure(3)
imshow(I)
hold on;
plot(mycontour(:,2),mycontour(:,1),'g','LineWidth',1);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeContour Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by