我使用广义hough变换来区分各种任意形状。我将要处理的几个形状如下所示:http://i50.tinypic.com/2u550t5.png
我已经成功地实现了以下步骤:
A)转换/训练阶段
i)获取二进制图像的阈值ii)使用cvFindContour获取轮廓iii)计算每个边缘像素的距离"r"和梯度方向(phi)iv)创建R-表
为每个形状的创建一个R表数据库
B)识别
i)获取任意形状的轮廓ii)计算每个边缘像素的梯度方向iii)使用R-表,构建累加器
我的问题是如何继续?
如何使用此累加器数据检测形状?
基本上,一旦你有了累加器图像,你就必须找到其中的峰值,即具有最高"票数"的像素(或单元),峰值应该大致代表你形状的位置。
有很多关于广义霍夫教程的教程,我喜欢M.Ulrich的论文"图像中复合对象的层次实时识别"中包含的教程,其中图4.3、4.4和4.5清楚地解释了这个主题。