如何在MATLAB中按顺序跟踪对象边界点?

时间:2012-04-18 02:33:03

标签: matlab computer-vision

我需要得到一组点{(x1,y1),(x2,y2),(x3,y3),....(xn,yn)},其中此集代表边界点 AND (xk,yk)(xk+1, yk+1)是邻居。很明显,我需要获得边界点才能在傅里叶描述符中使用。

我使用了bwboundaries和bwtraceboundary,他们都给出了糟糕的结果,我怎么能实现这个目标呢?

1 个答案:

答案 0 :(得分:3)

bwtraceboundary()应该完全按照您的意愿行事。看一下这个例子:

x = imread('rice.png');
xCropped = x(75:93, 100:140);
figure; imshow(xCropped);

xBW = xCropped>175;
b = bwtraceboundary(xBW, [8 8], 'E');

hold on;
plot(b(:,2),b(:,1));