2024-04-29 05:48:04 发布
网友
我想做的是一个简单应用程序的图像识别:
有联系吗?有什么线索吗?有原料药吗?泰克斯:)
你指出几何图形是50x50像素。如果几何图形的大小和方向是固定的,则有一个经典的模板匹配问题,适合于correlation method。可以将模板匹配应用于原始图像或边界检测输出。
否则,如果大小(比例)和/或方向是任意的,则可以应用傅里叶描述子。这些描述符是旋转和缩放不变量。
所有这些方法都可以使用OpenCV、NumPy或SciPy进行编码。
OpenCV有blob分析工具,它将为您提供有关形状的度量,您可以为您喜爱的模式识别算法提供这些形状:)例如,当圆的比率约为0.78时,矩形的面积/(高度*宽度)的比率为1.0。
典型的python工具链是:
至于区分形状,我会通过观察背景的形状来获得它的轮廓。然后,我将使用corner detection算法(例如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()
你指出几何图形是50x50像素。如果几何图形的大小和方向是固定的,则有一个经典的模板匹配问题,适合于correlation method。可以将模板匹配应用于原始图像或边界检测输出。
否则,如果大小(比例)和/或方向是任意的,则可以应用傅里叶描述子。这些描述符是旋转和缩放不变量。
所有这些方法都可以使用OpenCV、NumPy或SciPy进行编码。
OpenCV有blob分析工具,它将为您提供有关形状的度量,您可以为您喜爱的模式识别算法提供这些形状:)例如,当圆的比率约为0.78时,矩形的面积/(高度*宽度)的比率为1.0。
典型的python工具链是:
至于区分形状,我会通过观察背景的形状来获得它的轮廓。然后,我将使用corner detection算法(例如Harris)检测角的数量。三角形有三个角,正方形有四个角,笑脸没有。 这是一条Python。
编辑:
正如您在评论中提到的,博客文章没有提供生成算法所需高斯核的函数。下面是来自Scipy Cookbook(伟大的资源btw)的这样一个函数的示例:
相关问题 更多 >
编程相关推荐