如果您知道数据的状态空间,则可以使用主成分分析。对于PCA,必须摆放所有对象(在屏幕中央)。 PCA不会进行检测,但会将对象分成唯一的层,您可以在其中将其标识为三角形等。另外请注意:这不是缩放或旋转不变的。
[我不记得这种技术叫什么了,但是它类似于邮局手写记录的方式]如果您只能处理非弯曲的曲面,则可以进行边缘检测,然后在相交处进行采样以获得近似值。相似。
0
如果您知道数据的状态空间,则可以使用主成分分析。对于PCA,必须摆放所有对象(在屏幕中央)。 PCA不会进行检测,但会将对象分成唯一的层,您可以在其中将其标识为三角形等。另外请注意:这不是缩放或旋转不变的。
[我不记得这种技术叫什么了,但是它类似于邮局手写记录的方式]如果您只能处理非弯曲的曲面,则可以进行边缘检测,然后在相交处进行采样以获得近似值。相似。
0
典型的python工具链为:
至于形状的区别 ,我将通过查看背景的形状来获得其轮廓。然后,我将使用角点检测算法(例如,Harris)来检测角点的数量。三角形有3个角,正方形有4个,无笑脸。这是Scipy的Harris拐角检测的python 实现 。
编辑:
正如您在评论中提到的那样,博客文章中没有介绍产生该算法所需的高斯核的函数。这是Scipy Cookbook中的此类功能的示例(btw的最佳资源):
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()
0
您指出的几何图形是50x50像素。如果几何图形的大小和方向是固定的 ,则存在经典的模板匹配问题 ,适合于相关方法 。您可以将匹配的模板应用于原始图像或边界检测输出。
否则,如果大小(比例)和/或方向是任意的,则可以应用傅立叶描述符 。这些描述符是旋转和比例不变。
所有这些方法都可以使用OpenCV,NumPy或SciPy进行编码。
0
我想做的是一个简单应用程序的图像识别:
任何链接?有什么提示吗?任何API? thxs :)