1

我有一个相似三角形的 BW 位图。我试图确定每个三角形所面对的方向。“面对”是指以一种在所有三角形中保持不变的方式来描述方向,例如最长边中线的方向。

到目前为止,我可以单独识别三角形,但我不知道找出每个三角形方向的最佳方法是什么。

作为第一个想法,我考虑使用霍夫变换拟合每个三角形边的线条。一旦我有了 3 个边,我就可以计算它们的交点,然后我就得到了 3 个顶点的坐标。从 3 个顶点很容易找出最长边的中位数。

我对这种方法的问题是我从未使用过霍夫变换,而且我不知道编写一个找到边并以我可用于计算交点的方式返回它们的函数有多难。您能否将我链接到一些文章或简要解释如何使用 Hough 变换在表示中找到我可以用来计算交叉点的边?

我的另一个想法是直接在位图图像上使用旋转不变矩,而不通过霍夫变换识别它们的侧面。

我对这个解决方案的问题是,当我使用时刻来描述一个方向时,我不知道它的“含义”是什么。如果我使用不变矩,如何定义参考方向?

带有已识别对象的示例图像: 样本

单个对象 样品1

4

1 回答 1

1

用于在每个三角形houghlines中找到最长的,即 BW 输入应该只包含一个三角形的(例如使用)。这将为您提供三角形最长边的方程式。BW = edge(I,'canny')

如果你的三角形是等腰三角形,那么通过它的中点的最长边的法线就是中线,你就完成了。

如果没有,我想你必须找到 3 个边缘,等等。

更新:

看着你的斑点,我建议尝试R = regionprops(BW,'Orientation');

于 2011-11-01T18:28:20.190 回答