1、8.18.28.38.4基于像素的匹配基于特征的匹配图像金字塔Matching助手第第8章章 HALCON图像匹配图像匹配HALCON编程基础与工程应用编程基础与工程应用8.1基于像素的匹配基于像素的匹配 图像的灰度值信息包含了图像记录的所有信息。基于图像像素图像的灰度值信息包含了图像记录的所有信息。基于图像像素灰度值的匹配是最基本的匹配算法。通常直接利用整幅图像的灰度灰度值的匹配是最基本的匹配算法。通常直接利用整幅图像的灰度信息建立两幅图像之间的相似性度量,然后采用某种搜索方法寻找信息建立两幅图像之间的相似性度量,然后采用某种搜索方法寻找使相似性度量值最大或最小的变换模型的参数值。使相似性度
2、量值最大或最小的变换模型的参数值。HALCON编程基础与工程应用编程基础与工程应用 归一化积相关(归一化积相关(NCCNCC)是一种典型的基于灰度相关的算法,具有不是一种典型的基于灰度相关的算法,具有不受比例因子误差影响和抗白噪声干扰能力强等优点。受比例因子误差影响和抗白噪声干扰能力强等优点。图像的归一化积相关灰度匹配算法实现的步骤描述如下:图像的归一化积相关灰度匹配算法实现的步骤描述如下:(1 1)获得待匹配图像、模板图像数据的地址、存储的高度和宽度。)获得待匹配图像、模板图像数据的地址、存储的高度和宽度。(2 2)建立一个目标图像指针,并分配内存,以保存匹配完成后的图像,将带匹配图)建立一
3、个目标图像指针,并分配内存,以保存匹配完成后的图像,将带匹配图像复制到目标图像中。像复制到目标图像中。(3 3)逐个扫描原图像中的像素点所对应的模板子图,求出每一个像素点位置的归一化)逐个扫描原图像中的像素点所对应的模板子图,求出每一个像素点位置的归一化积相关函数值,找到图像中最大归一化函数值的位置,记录像素点的位置。积相关函数值,找到图像中最大归一化函数值的位置,记录像素点的位置。(4 4)将目标图像所有像素值减半以便和原图区别,把模板图像复制到目标图像中步)将目标图像所有像素值减半以便和原图区别,把模板图像复制到目标图像中步骤(骤(3 3)中记录的像素点位置。)中记录的像素点位置。1、归一
4、化积相关灰度匹配归一化积相关灰度匹配HALCON编程基础与工程应用编程基础与工程应用 序贯相关性检测算法(序贯相关性检测算法(SSDASSDA)在待匹配图像的每个位置上以随机不重复的顺序选在待匹配图像的每个位置上以随机不重复的顺序选择像元,并累计模板和待匹配图像在该像元的灰度差,若累计值大于某一指定阈值,择像元,并累计模板和待匹配图像在该像元的灰度差,若累计值大于某一指定阈值,则说明该位置为非匹配位置,停止本次计算,进行下一个位置的测试,直到找到最佳则说明该位置为非匹配位置,停止本次计算,进行下一个位置的测试,直到找到最佳匹配位置。匹配位置。图像的序贯相似性检测算法实现步骤如下:图像的序贯相似
5、性检测算法实现步骤如下:(1 1)获得待匹配图像、模板图像数据的地址、存储的高度和宽度。)获得待匹配图像、模板图像数据的地址、存储的高度和宽度。(2 2)建立一个目标图像指针,并分配内存,以保存图像匹配后的图像,将待匹配图)建立一个目标图像指针,并分配内存,以保存图像匹配后的图像,将待匹配图像复制到目标图像中。像复制到目标图像中。(3 3)逐个扫描原图像中的像素点所对应的模板子图,根据式()逐个扫描原图像中的像素点所对应的模板子图,根据式(8-88-8)求出每一个像素)求出每一个像素点位置的绝对误差值,当累加绝对误差值超过阈值时,停止累加,记录像素点的位置和累加次数。点位置的绝对误差值,当累加
6、绝对误差值超过阈值时,停止累加,记录像素点的位置和累加次数。(4 4)循环步骤()循环步骤(3 3),直到处理完原图像的全部像素点,累加次数最少的像素点为最),直到处理完原图像的全部像素点,累加次数最少的像素点为最佳匹配点。佳匹配点。(5 5)将目标图像所有像素值减半以便和原图区别,把模板图像复制到目标图像中步)将目标图像所有像素值减半以便和原图区别,把模板图像复制到目标图像中步骤(骤(4 4)记录的像素点位置。)记录的像素点位置。2、序贯相似性检测法匹配、序贯相似性检测法匹配HALCON编程基础与工程应用编程基础与工程应用 序贯相关性检测算法的改进序贯相关性检测算法的改进(1)(1)对于对于
7、(N-M+1N-M+1)个参考点的选用顺序可以不逐点推进。个参考点的选用顺序可以不逐点推进。(2)(2)在某参考点在某参考点(i,ji,j)处,对模板覆盖下的处,对模板覆盖下的M2M2个点对的计算顺序可用于个点对的计算顺序可用于i i,j j无关的随机无关的随机方式计算误差,也可采用适应图像内容的方式,按模板中突出特征选取伪随机序列,方式计算误差,也可采用适应图像内容的方式,按模板中突出特征选取伪随机序列,决定计算误差的先后顺序,以便及早抛弃那些非匹配点。决定计算误差的先后顺序,以便及早抛弃那些非匹配点。(3)(3)模板在模板在(i,ji,j)点得到的累积误差映射为上述曲面数值的方法,是否最佳
8、还可以探索。点得到的累积误差映射为上述曲面数值的方法,是否最佳还可以探索。(4)(4)不选用固定阈值不选用固定阈值T_kT_k,而改用单调增长的阈值序列,使非匹配点使用更少的计算就,而改用单调增长的阈值序列,使非匹配点使用更少的计算就可以达到阈值而被丢弃,真匹配点则需要更多次误差累计才达到阈值。可以达到阈值而被丢弃,真匹配点则需要更多次误差累计才达到阈值。2、序贯相似性检测法匹配、序贯相似性检测法匹配HALCON编程基础与工程应用编程基础与工程应用基于像素的匹配实例基于像素的匹配实例(a)模板图像)模板图像 (b)模板矩形区域)模板矩形区域 (c)模板模板(d)目标图像)目标图像 (e)匹配结
9、果)匹配结果HALCON编程基础与工程应用编程基础与工程应用基于像素的匹配实例基于像素的匹配实例(1)create_ncc_model(Template:NumLevels,AngleStart,AngleExtent,AngleStep,Metric:ModelID)功能:使用图像创建NCC匹配模板。(2)find_ncc_model(Image:ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels:Row,Column,Angle,Score)功能:搜索NCC最佳匹配。核心算子核心算
10、子HALCON编程基础与工程应用编程基础与工程应用8.2基于特征的匹配基于特征的匹配利用灰度信息匹配方法的主要缺陷是计算量过大、对图像的灰度变化比较敏感,尤其是非线性的光照变化,将大大降低算法的性能。此外,对目标的旋转、形变以及遮挡也比较敏感。为了克服这些缺点,可以利用图像特征进行匹配的方法。特征匹配是指建立两幅图像中特征点之间对应关系的过程。用数学语言可以描述为:两幅图像A和B中分别有m和n个特征点(m和n通常是不相等的),其中有k对点是两幅图像中共同拥有的,则如何确定两幅图像中k对相对应的点对即为特征匹配要解决的问题。HALCON编程基础与工程应用编程基础与工程应用 在图像处理中,矩是一种
11、统计特性,可以使用不同阶次的矩计算模板的位置、方向和尺度变换参数。由于高阶矩对噪声和变形非常敏感,因此在实际应用中通常选用低阶矩来实现图像匹配。实现步骤(1)获得待匹配图像、模板图像数据的地址、存储的高度和宽度;(2)求出待匹配图像和模板图像的7个不变矩;(3)求出待匹配图像和模板图像的相关值。1、不变矩匹配法、不变矩匹配法HALCON编程基础与工程应用编程基础与工程应用 距离变换是一种常见的二值图像处理算法,距离变换匹配的原理是计算模板图覆盖下的那块子图与模板图之间的距离,也就是计算子图中的边缘点到模板图中最近的边缘点的距离实现步骤(1)获得待匹配图像、模板图像数据的地址、存储的高度和宽度;
12、(2)建立一个目标图像指针,并分配内存,以保留图像匹配后的图像,将待匹配图像复制到目标图像中;(3)逐个扫描原图像中的像素点所对应的模板子图,根据式(8-27)求出每个像素点位置的最小距离值,记录像素点的位置;(4)循环步骤(3),直到处理完原图像的全部像素点,距离最小的像素点为最佳匹配点。(5)将目标图像所有像素值减半以便和原图像区别,把模板图像复制到目标图像中步骤(4)记录的像素点位置。2、距离变换匹配法、距离变换匹配法HALCON编程基础与工程应用编程基础与工程应用 最小均方误差匹配方法是利用图像中的对应特征点,通过解特征点的变换方程来计算图像间的变换参数。实现步骤(1)获得待匹配图像、
13、模板图像数据的地址、存储的高度和宽度;(2)建立一个目标图像指针,并分配内存,以保留图像匹配后的图像,将待匹配图像复制到目标图像中;(3)逐个扫描原图像中的像素点所对应的模板子图,根据式(8-30)构造点坐标矩阵,然后根据式(8-31)求出放射变换向量,解出最小均方误差值。(4)循环步骤(3),直到处理完原图像的全部像素点,最小均方误差值最小的像素点为最佳匹配点。(5)将目标图像所有像素值减半以便和原图区别,把模板图像复制到目标图像中步骤(4)记录的像素点位置。3、最小均方误差匹配法、最小均方误差匹配法HALCON编程基础与工程应用编程基础与工程应用基于形状特征的模板匹配基于形状特征的模板匹配
14、(a)模板图像 (b)模板(c)目标图像 (d)匹配结果HALCON编程基础与工程应用编程基础与工程应用基于形状特征的模板匹配基于形状特征的模板匹配核心算子核心算子(1)create_scaled_shape_model(Template:NumLevels,AngleStart,AngleExtent,AngleStep,ScaleMin,ScaleMax,ScaleStep,Optimization,Metric,Contrast,MinContrast:ModelID)功能:使用图像创建带有缩放的形状匹配模型。(2)get_shape_model_contours(:ModelConto
15、urs:ModelID,Level;)功能:获取形状模版的轮廓。(3)find_scaled_shape_model(Image:ModelID,AngleStart,AngleExtent,ScaleMin,ScaleMax,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness:Row,Column,Angle,Scale,Score)功能:寻找单个带尺度形状模板最佳匹配。HALCON编程基础与工程应用编程基础与工程应用8.3图像金字塔图像金字塔 图像金字塔是一种以多图像金字塔是一种以多分辨率来解释图像的有效但分辨率来解释图
16、像的有效但概念简单的结构,广泛应用概念简单的结构,广泛应用于图像分割、机器视觉和图于图像分割、机器视觉和图像压缩。像压缩。一幅图像的金字塔是一一幅图像的金字塔是一系列以金字塔形状排列的分系列以金字塔形状排列的分辨率逐步降低,且来源于同辨率逐步降低,且来源于同一张原始图的图像集合。其一张原始图的图像集合。其通过梯次向下采样获得,直通过梯次向下采样获得,直到达到某个终止条件才停止到达到某个终止条件才停止采样。采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。HALCON编程基础与工程应用编程基础与工程应用 常见
17、的图像金字塔有两种,高斯金字塔和拉普拉斯金字塔。高斯金字塔(Gaussianpyramid)用来向下采样,是主要的图像金字塔。拉普拉斯金字塔(Laplacianpyramid)用来从金字塔低层图像重建上层未采样图像,也就是在数字图像处理中的预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。两类图像金字塔两类图像金字塔HALCON编程基础与工程应用编程基础与工程应用图像金字塔应用图像金字塔应用HALCON编程基础与工程应用编程基础与工程应用图像金字塔应用图像金字塔应用(1)inspect_shape_model(Image:ModelImages,ModelRegions:NumL
18、evels,Contrast)功能:根据金字塔层数和对比度检查要生成的模版是否合适。(2)create_shape_model(Template:NumLevels,AngleStart,AngleExtent,AngleStep,Optimization,Metric,Contrast,MinContrast:ModelID)功能:使用图像创建形状匹配模型。(3)find_shape_model(Image:ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness:R
19、ow,Column,Angle,Score)功能:寻找单个形状模板最佳匹配。核心算子核心算子HALCON编程基础与工程应用编程基础与工程应用8.4Matching助手助手 HALCON自带的Matching助手可以使感兴趣区域获取更方便,参数设置更直观等。主要的操作在创建、参数和应用三个选项卡。HALCON编程基础与工程应用编程基础与工程应用总结总结 图像匹配是机器视觉中的重要组成,本章介绍了图像匹配的概念及主要方法,常见的是基于像素的匹配和基于特征的匹配。详细地介绍了两种匹配方法的原理,图像金字塔在图像匹配中的作用及常用类型,以及HALCON软件中的匹配助手,并且有对应的HALCON匹配实例,方便读者学习掌握基于HALCON的图像匹配。HALCON编程基础与工程应用编程基础与工程应用