我想做的是一个简单应用程序的图像识别:
- 给定一张图像(500 x 500像素,背景为单色)
- 图像上只有一个几何图形(三角形或正方形或笑脸:))大小为(50x50)像素。
- Python将对该图形进行识别并显示其几何图形。
有任何链接、提示或API吗?谢谢:)
我想做的是一个简单应用程序的图像识别:
有任何链接、提示或API吗?谢谢:)
一个典型的Python工具链包括:
关于“区分形状”,我会通过查看背景的形状来获得其轮廓。然后,我会使用角点检测算法(例如Harris)检测角落的数量。三角形有3个角,正方形有4个角,笑脸没有角。这是一份使用Scipy实现的Python Harris角点检测的代码。
编辑:
正如您在评论中提到的,该博客文章没有展示产生算法所需的高斯核函数。这里是一个Scipy Cookbook(非常好的资源)中的高斯核函数的示例:
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分析工具,它将提供有关形状的度量标准,您可以将其馈送到喜欢的模式识别算法中 :)例如,矩形的面积/(高*宽)比率为1.0,而圆形的比率约为0.78。