我在 Canny 边缘检测后获得了以下图像:
应用霍夫变换后,我得到了这个结果:
这是一个非常好的结果,但我只需要每个捆绑包中的一条线,这样我就可以显示第一张图片中的对象类似于三角形。我的第一个决定是为每个捆绑包计算某种“平均”线。每条线由一个角度和一个半径定义。我为每个捆绑找到“平均”线的方法是使用以下公式计算角度的平均值:
avgTheta = arctan(sum of sines of all thetas/sum of cosines of all theta)
我以最简单的方式计算平均半径:
avgRadius = sum of all raduises / number of raduises
但是,我得到的线条不在它们的包的中心。
有人可以建议更好的解决方案吗?
我正在使用霍夫变换的这个实现:霍夫变换
总是可以选择随机抽取每个捆绑包中的一行,但我不喜欢它。
如果我的问题不清楚,请告诉我,以便更好地解释问题。
提前致谢。