【问题标题】:compare arbitrary shapes using generalized hough transform使用广义霍夫变换比较任意形状
【发布时间】:2012-07-20 05:46:07
【问题描述】:

我使用广义霍夫变换来区分各种任意形状。我将要处理的几个形状如下所示: http://i50.tinypic.com/2u550t5.png

我已经成功实施了以下步骤:

A) 转换/训练阶段

i) 获取二值图像的阈值 ii) 使用 cvFindContour 获取轮廓 iii) 计算每个边缘像素的距离 'r' 和梯度方向 (phi) iv) 创建 R 表

为每个形状创建一个 R 表数据库

B) 认可

i) 获取任意形状的轮廓 ii) 计算每个边缘像素的梯度方向 iii) 使用 R-table,构建累加器

我的问题是如何进一步进行?

如何使用这个累加器数据检测形状?

【问题讨论】:

  • 也许你可以问dsp.stackexchange.com
  • 为了检测形状,您必须在累加器图像中找到峰值(最大值)。

标签: c++ image-processing opencv hough-transform


【解决方案1】:

基本上,一旦你有了累加器图像,你就必须找到其中的峰值,即“投票”数量最多的像素(或单元格),大致来说,峰值应该代表你的位置形状。

关于广义霍夫教程有很多教程,我喜欢 M. Ulrich 的论文"Hierarchical Real-Time Recognition of Compound Objects in Images" 中包含的那个,其中图 4.3、4.4 和 4.5 清楚地解释了主题。

【讨论】:

    猜你喜欢
    • 2014-10-29
    • 2018-01-15
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多