检测并计算图像中的对象

时间:2014-10-17 15:41:36

标签: python opencv computer-vision object-detection template-matching

我试图在python中编写脚本来检测和计算图像中的对象,但我失败了。

这是我第一次感兴趣并通过计算机视觉尝试一些东西。我已经尝试使用cv2模块(open cv),遵循有关功能匹配和模板匹配的教程here。我也试过scikit-image,但我也无法取得好成绩。我也想过找到轮廓然后进行二维曲线匹配。

让我再解释一下这个问题。我有一组图标,是构成一个大图像的图标。该图像或场景的构图由普通背景或透明背景以及来自图标集的多个图像完成。来自iconset的这些图像基本上可以进行3种基本变换:缩放,旋转和平移。它们也可以重叠。

An quick example by means of Android version icons.

所需脚本的输出类似于:

C - > 1

D - > 1

E - > 1

F - > 1

G - > 1

H - > 2

我 - > 3

J - > 0

我现在要尝试使用Dlib,看看我是否可以通过机器学习算法实现某些目标。我认为我试图通过实际需要的更复杂的东西来解决我的问题。关于如何做的任何建议都会很棒,我也可以开放任何python库。

PS:很抱歉没有在这里发布图片,但我还没有足够的声誉。

1 个答案:

答案 0 :(得分:1)

您可以尝试许多技巧。但是如果你真的想快速轻松地制作东西,可以尝试操纵你的图像集,使每个类别都有明显独特和独特的颜色。因此,您可以通过查找对象的颜色做出一些决定,甚至可以更好地计算特定颜色轮廓的数量。

伪代码:

  1. 预处理图像 - (通过使用反投影函数标准化,仅阈值目标颜色)
  2. findContours
  3. 每个轮廓
    1. 检查它是否有效"功能"轮廓 - 您可以稍后通过过滤一些嘈杂的区域来进一步增强您的程序
    2. 估计它所属的最可能的类别。
  4. 这也应该给你相当不错的性能速度。否则你必须对图标做出一些假设。缩放,旋转,遮挡/重叠情况。