10

我对图像处理有了基本的了解,现在正在深入研究冈萨雷斯的《数字图像处理》一书。

当给定图像和感兴趣对象的近似形式已知(例如圆形、三角形)时,在图像上找到该对象的最佳算法/方法是什么?

物体可能会稍微变形,所以蛮力方法无济于事。

4

6 回答 6

7

您可以尝试使用方向梯度直方图(也称为边缘方向直方图)。我们已将它们用于检测道路标志。http://en.wikipedia.org/wiki/Histogram_of_orient_gradients和 Bill Triggs 的论文应该可以帮助您入门。

于 2009-05-05T10:52:37.170 回答
5

我建议您使用 Hough 变换,它允许您找到由方程描述的任何给定模式。此外,霍夫变换也适用于变形对象。

算法和实现本身非常简单。更多细节可以在这里找到:http ://en.wikipedia.org/wiki/Hough_transform ,甚至这个算法的源代码也包含在参考页面上(http://www.rob.cs.tu-bs.de /content/04-teaching/06-interactive/HNF.html)。

我希望这对你有帮助。

于 2009-03-06T10:44:30.860 回答
3

我会分两步看你的问题:

  • 首先找到你的对象的外边界:我假设你有足够的对比图像,你可以很容易地阈值来获得你的对象的二进制图像。您需要提取对象边界链码。

  • 然后分析边界的形状以推断形式(圆形、多边形、...):您可以计算边界链的每个点的曲率,从而确定您的形状中有多少个锐角(即高曲率值)。几个锐角​​意味着你有一个多边形,没有一个意味着你有一个圆(恒定曲率)。

您可以在Gonzalez 的《数字图像处理》第 11 章中找到有关如何从二进制图像中获取对象边界以及分析它的方法的描述。

我还发现了这个关于二值图像分析 (PPT) 的有见地的演示文稿和一个matlab 脚本,该脚本实现了 Gonzalez 在 DIP 中谈到的一些技术。

于 2009-03-11T01:12:19.100 回答
1

看起来,来自舍布克大学的Jean Rouat教授已经找到了一种通过处理中性脉冲神经网络来查找图像中对象的方法。他的技术名称RN-SPIKES似乎可用于许可。

于 2011-11-10T17:06:33.293 回答
1

我强烈推荐你使用OpenCV,它是一个很棒的计算机视觉库,对任何与计算机视觉相关的事情都有很大帮助。他们的网站不是很吸引人,也不是很有帮助,但是 API 确实很强大。

由于网络上没有大量文档,因此对我有很大帮助的一本书是Learning OpenCV。API 附带的文档很好,但不适合学习如何使用它。

与您的问题相关,您可以使用 Canny Edge 检测器来查找项目的边界然后对其进行分析,或者您可以继续使用霍夫变换来搜索线和/或圆。

于 2009-06-30T15:37:36.113 回答
1

您可以专门尝试“人脸识别”。因为,你知道这是一个特定的话题。另一方面,“面部检测”等。EmguCV 对您很有用。它是英特尔 OpenCV 图像处理库的 .Net 包装器。

于 2010-10-26T22:12:32.743 回答