MATLAB中相似三角形的方向识别

MATLAB中相似三角形的方向识别,matlab,image-processing,geometry,hough-transform,invariants,Matlab,Image Processing,Geometry,Hough Transform,Invariants,我有一个类似三角形的BW位图。我试图确定每个三角形所面对的方向。所谓“面向”,我的意思是用一种在所有三角形上都是恒定的方式来描述方向,例如最长边的中间带的方向 到目前为止,我可以单独识别三角形,但我不知道找出每个三角形方向的最佳方法是什么 作为第一个想法,我考虑使用Hough变换为每个三角形的边拟合线。一旦我有了3条边,我就可以计算它们的交点,然后我就有了3个顶点的坐标。从3个顶点很容易找到最长边的中间值 这种方法的问题是,我从未使用过Hough变换,我不知道编写一个函数来查找边并以我可以用来计

我有一个类似三角形的BW位图。我试图确定每个三角形所面对的方向。所谓“面向”,我的意思是用一种在所有三角形上都是恒定的方式来描述方向,例如最长边的中间带的方向

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

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

这种方法的问题是,我从未使用过Hough变换,我不知道编写一个函数来查找边并以我可以用来计算交点的方式返回边有多难。你能把我和一些文章联系起来,或者简单地解释一下如何使用Hough变换在表示法中找到边,我可以用它来计算交点吗

我的另一个想法是直接在位图图像上使用,而不通过Hough变换识别其侧面

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

包含已识别对象的示例图像:

单一物体

用于查找每个三角形中的最长三角形,即BW输入应仅包含一个三角形的边(例如,使用
BW=edge(i,'canny')
)。这将给出三角形最长边的方程式

如果三角形是等参线,那么通过其中点的最长边的法线就是中间线,就完成了

如果没有,我想你必须找到3条边,等等

更新: 看看你的blob,我建议你试试
R=regionprops(BW,'Orientation')

用于查找每个三角形中的最长三角形,即BW输入应仅包含一个三角形的边(例如,使用
BW=edge(i,'canny')
)。这将给出三角形最长边的方程式

如果三角形是等参线,那么通过其中点的最长边的法线就是中间线,就完成了

如果没有,我想你必须找到3条边,等等

更新:
看看你的blob,我建议你试试
R=regionprops(BW,'Orientation')

是的,实际上是45-45-90。但是当它们只是普通三角形时,了解一般的解决方案会很有趣。你能发布一个只包含一个三角形的位图链接吗?我把它上传到我的问题中。是的,实际上它们是45-45-90。但是当它们只是普通三角形时,了解一般的解决方案会很有趣。你能发布一个链接到一个只有一个三角形的位图吗?我把它上传到了我的问题中。