基于几何形状检测图像上的物体

发布于 2024-07-14 19:35:09 字数 143 浏览 22 评论 0原文

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

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

物体可能会轻微变形,因此强力方法无济于事。

I have a basic understanding in image processing and now studying in-depth the "Digital Image Processing" book by Gonzales.

When image given and object of interest approximated form is known (e.g. circle, triangle),
what is the best algorithm / method to find this object on image?

The object can be slightly deformed, so brute force approach will not help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

野心澎湃 2024-07-21 19:35:09

您可以尝试使用定向梯度直方图(也称为边缘方向直方图)。 我们用它们来检测路标。 http://en.wikipedia.org/wiki/Histogram_of_orient_gradients 和 Bill Triggs 的论文应该得到你开始了。

You may try using Histograms of Oriented Gradients (also called Edge Orientation Histograms). We have used them for detecting road signs. http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients and the papers by Bill Triggs should get you started.

行至春深 2024-07-21 19:35:09

我建议您使用霍夫变换,它可以让您找到由方程描述的任何给定模式。 更重要的是,霍夫变换对于变形对象也非常有效。

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

我希望这对你有帮助。

I recommend you use the Hough transform, which allows you to find any given pattern described by a equation. What's more the Hough transform works also great for deformed objects.

The algorithm and implementation itself is quite simple.
More details can be found here: http://en.wikipedia.org/wiki/Hough_transform , even a source code for this algorithm is included on a referenced page (http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html).

I hope that helps you.

墨小沫ゞ 2024-07-21 19:35:09

我会分两步查看您的问题:

  • 首先找到对象的外边界
    我假设您已经对比了足够的图像,您可以轻松地阈值来获得对象的二值图像。 您需要提取对象边界链码。

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

您可以在 冈萨雷斯的数字图像处理,第 11 章

我还发现了这个关于二值图像分析(PPT)的富有洞察力的演示 和一个 matlab 脚本,它实现了 Gonzalez 在 DIP 中谈到的一些技术。

I would look at your problem in two steps:

  • first finding your object's outer boundary:
    I'm supposing you have contrasted enough image, that you can easily threshold to get a binary image of your object. You need to extract the object boundary chain-code.

  • then analyzing the boundary's shape to deduce the form (circle, polygon,...):
    You can calculate the curvature in each point of the boundary chain and thus determine how many sharp angles (i.e. high curvature value) there are in your shape. Several sharp angles means you have a polygon, none means you have a circle (constant curvature).

You can find a description on how to get your object's boundary from the binary image and ways of analysing it in Gonzalez's Digital Image Processing, chapter 11.

I also found this insightful presentation on binary image analyis (PPT) and a matlab script that implements some of the techniques that Gonzalez talks about in DIP.

蓝天白云 2024-07-21 19:35:09

我强烈建议您使用 OpenCV,它是一个很棒的计算机视觉库,对与以下相关的任何事情都有很大帮助计算机视觉。 他们的网站并不是很有吸引力,也没有什么帮助,但是 API 确实很强大。

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

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

I strongly recommend you to use OpenCV, it's a great computer vision library that greatly help with anything related to computer vision. Their website isn't really attractive, nor helpful, but the API is really powerful.

A book that helped me a lot since there isn't a load of documentation on the web is Learning OpenCV. The documentation that comes with the API is good, but not great for learning how to use it.

Related to your problem, you could use a Canny Edge detector to find the border of your item and then analyse it, or you could proceed with and Hough transform to search for lines and or circles.

撧情箌佬 2024-07-21 19:35:09

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

you can specially try 'face recognition'. Because, you know that is a specific topic. On the other hand 'face detection' etc. EmguCV can be useful for you.. It is .Net wrapper to the Intel OpenCV image processing library.

我的鱼塘能养鲲 2024-07-21 19:35:09

看起来来自谢尔布克大学的 Jean Rouat 教授已经找到了一种方法通过处理中性尖峰神经网络来查找图像中的对象。 他的技术名称 RN-SPIKES 似乎可以获取许可。

It looks like professor Jean Rouat from the University of Sherbooke, has found a way to find objects in images by processing neutral spiking neural network. His technology name RN-SPIKES, seems to be available for licencing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文