什么我想要做的是一个像承认一个简单的应用程序:

  1. 鉴于图像(500x500)pxs(1色背景上的)
  2. 图像将只有1的几何图(三角形或正方形或smaleyface:))的(50×50)pxs.
  3. 蟒蛇会做的认识图,显示哪些几何图。

任何联系?任何提示?任何API?免费:)

有帮助吗?

解决方案

一个典型的 蟒蛇的工具链 将是:

如远 分形的形状, 我会得到它的轮廓通过查看这形状的背景。然后,我会检测数量的角使用一个 角检测 算法(例如Harris).一个三角形,有3个角落,一方4和一个笑脸。这里是蟒蛇 执行哈里斯角检测与这.

编辑:

因为你更在意见,博客不是本的功能,产生了一个高斯核所需的算法。这是一例这样的功能 这本食谱 (伟大的资源顺便说一句):

def gauss_kern(size, sizey=None):
    """ Returns a normalized 2D gauss kernel array for convolutions """
        size = int(size)
        if not sizey:
            sizey = size
        else:
            sizey = int(sizey)
        x, y = mgrid[-size:size+1, -sizey:sizey+1]
        g = exp(-(x**2/float(size)+y**2/float(sizey)))
        return g / g.sum()

其他提示

OpenCV 有blob分析工具,它会为您提供有关形状的指标你最喜欢的模式识别算法的饲料:)例如。当圆的比率约为0.78时,矩形的面积/(高度*宽度)为1.0。

您指出几何图形为50x50像素。如果几何图形的大小和方向 固定,则您有一个经典的模板匹配问题,适合相关方法。您可以在原始图像或边框检测输出上应用模板匹配。

否则,如果尺寸(比例)和/或方向是任意的,则可以应用傅立叶描述符。这些描述符是旋转和缩放不变量。

所有这些方法都可以使用OpenCV,NumPy或SciPy进行编码。

如果您知道数据的状态空间,则可以使用主成分分析。使用PCA时,必须提出所有对象(位于屏幕中央)。 PCA不会进行检测,但它会将对象分成独特的层,您可以将其识别为三角形等。另请注意:这不是缩放或旋转不变的。

[我不记得这种技术被称为什么,但它类似于邮局如何处理rec] 如果只能处理非曲面曲面,则可以进行边缘检测,然后在交点处进行采样以获得相似性的近似值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top