【问题标题】:How to Trace Object Boundary Points in Order in MATLAB?如何在 MATLAB 中按顺序跟踪对象边界点?
【发布时间】:2012-10-09 02:33:04
【问题描述】:

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

我使用了 bwboundaries 和 bwtraceboundary,它们的结果都很差,我该如何实现?

【问题讨论】:

  • 你的意思是,像在图像中?请更准确一些,以便人们了解您的问题并为您提供帮助。
  • 按顺序表示点 x-1 是点 x 的邻居,点 x 是点 x+1 的邻居,所有这些点都是轮廓点!

标签: matlab computer-vision


【解决方案1】:

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));

【讨论】:

  • 我意识到他说 bwtraceboundary 对他不起作用,但我看不出为什么。它完全符合他的要求。
  • 确实如此,已删除反对票。我敢打赌他是在初始过滤不佳的图像上尝试的
  • @AK4749 谢谢!我编辑了答案,也许您现在可以删除反对票?
猜你喜欢
  • 2014-06-16
  • 2023-03-07
  • 1970-01-01
  • 2018-08-24
  • 2017-01-26
  • 2011-09-25
  • 2013-07-15
  • 1970-01-01
  • 2015-07-14
相关资源
最近更新 更多