蟒蛇图像识别[封闭]
-
05-07-2019 - |
题
什么我想要做的是一个像承认一个简单的应用程序:
- 鉴于图像(500x500)pxs(1色背景上的)
- 图像将只有1的几何图(三角形或正方形或smaleyface:))的(50×50)pxs.
- 蟒蛇会做的认识图,显示哪些几何图。
任何联系?任何提示?任何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] 如果只能处理非曲面曲面,则可以进行边缘检测,然后在交点处进行采样以获得相似性的近似值。
不隶属于 StackOverflow