匹配
- 不变矩的方法是一种比较经典的特征提取方法。
- 不变矩是不受旋转及大小比例改变的影响,所以可以将其利用于二维或者三维物体。不过这些不变矩不足以区别所有的形状,而且对噪声很铭感。
- 但通过计算可以看出,Hu矩的计算需要对整个图像存在区域进行计算,计算量大,不利于实时处理。
- 模板就是一幅已知的小图像,模板匹配就是在一幅大图像中搜索目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸,方向,图像,通过一定的算法可以在图中找到目标,确定其坐标位置。(搜索图越大,匹配速度越慢;模板越小,匹配速度越快)
- 模板匹配:http://hi.baidu.com/liudong861106/blog/item/5d66bb14d99c350c972b43ab.html. 模板匹配,即是用模板图像通过滑行依次与图像的重叠区域进行相似度比较,将相似度最大的区域作为匹配目标区域。在OpenCV中用函数cvMatchTemplate来滑动过整个图像, 并将比较结果存入result(比较结果的映射图像。单通道、32-比特浮点数.)参数当中。再通过使用函数cvMinMaxLoc找result中的全局最大值以及最大值所代表的匹配位置max_loc。
- 所谓模板匹配就是在一幅图像中寻找和模板图像(patch)最相似的区域:
- 模板图像:即已知的图像或已知模式的图像称为模板图像。待检测的图像称为匹配图像。图像匹配就是在匹配图像上搜索与模板图像相匹配的子图像的过程,实际场合下, 存在着如旋转变换,物体遮挡,比例变化,投影变换等使模板图像和匹配图像发生旋转和扭曲等形变,这使情况变得十分复杂。
cvMatchShapse():用的是hu矩来比较,判断相似度。因为hu矩具有不变的特性。
cvMatchTemplate()模板:用的是2个图形,1。模板小 2。大图像找 相似度最高的。 通过滑行方式,与重叠区域进行相似度比较
cvNormalize():匹配结果归一化
匹配中常用的特征是:边缘,轮廓,直线,兴趣点,颜色,纹理等。我们可以基于这些东东来达到匹配图像的功能。
- 图形匹配的方法很多,根据匹配特征可以分为2类:
- 基于图像灰度信息的匹配方法:归一化互相关匹配,模板匹配,快速傅立叶算法,投影匹配,序贯相似性检测匹配,平均绝对差匹配,图像不变矩匹配等。
- 基于图像特征的匹配方法:指在原图像和变换后的图像中提取对缩放,旋转,灰度变换具有不变性的特征进行匹配的方法。在原图中,常使用的特征包括边缘,区域,线的端点,线交叉点,区域中心,曲率不连续点等,其中边缘和区域边界最常用,他们可以由边缘检测方法和区域分割方法得到,在变换域里,可以采用傅立叶变换,离散余玄变换,沃尔什变换等变换把图像分解为一组系数,得到特征点,一般说来,基于特征的方法因他们不直接依赖于像素值,经常需要较复杂的图像处理以抽取特征,因此不利于硬件实现。
cvCalcEMD2(): 陆地移动距离(EMD)算法。两个加权点集之间计算最小工作距离。还可以度量两个分布之间的相似性。 方法的例子 :http://blog.sina.com.cn/s/blog_98eef7830100wxl8.html
学习opencv:轮廓的匹配
- 矩:比较2个轮廓最简洁的方式是比较他们的轮廓矩。矩是通过对轮廓上所有点进行积分运算或求和运算而得到的一个粗略特征。 归一化的矩:不同大小但是形状相同的物体会有相同的值,归一化的矩都小鱼1的,所以指数越大计算所得越小。cvMatchShapes()允许我们简单地提供2个物体,然后计算他们的矩并根据我们提供的标准进行比较。 这些物体可以是图像或者轮廓。如果你提供了图像,该函数会在对比的进程之前为你计算矩。
- 等级匹配:轮廓树。 树一旦被建立,就可以很有效的对比2个轮廓。这个过程开始于定义两个树节点的对应关系,然后比较对应节点的特性。最后的结果就是两个树的相似度。 在比较之前,我们先使用函数cvApproxPoly()之后将轮廓排序成最初的三角形不怎么受到旋转影响的状态。
- matchTemplate匹配