【发布时间】:2012-02-23 06:19:42
【问题描述】:
我在 Canny 边缘检测后获得了以下图像:
在对其应用霍夫变换后,我得到了这个结果:
这是非常好的结果,但我只需要从每个捆绑包中提取一条线,这样我就可以显示第一张图片中的对象类似于三角形。我的第一个决定是为每个捆绑包计算某种“平均”线。每条线由一个角度和一个半径定义。我找到每个束的“平均”线的方法是使用以下公式计算角度的平均值:
avgTheta = arctan(sum of sines of all thetas/sum of cosines of all theta)
我用最简单的方法计算平均半径:
avgRadius = sum of all raduises / number of raduises
但是我得到的线条不在它们的包的中心。
有人可以建议更好的解决方案吗?
我正在使用霍夫变换的这个实现:Hough Transform
总是可以选择随机抽取每个捆绑包中的一行,但我不喜欢它。
如果我的问题不清楚,请告诉我,以便更好地解释问题。
提前致谢。
【问题讨论】:
-
你为什么要做正弦/余弦/反正切的东西,而不是直接平均 thetas?另外,你是如何定义线半径的?
标签: java algorithm image-recognition hough-transform