图像匹配是通过对图像内容,特征,结构,纹理,灰度等的对应关系,进行相似性和一致性的分析,寻求相似图像目标的方法。
机器视觉的图像匹配,通常先确定目标,在某张样图中选择目标作为模板,然后在待匹配的图像中分析,是否有模板相似区,如果有,则进一步确定位姿,因此也被称作模板匹配。
图像像素的灰度值信息,包含了图像记录的所有信息。基于图案像素灰度值的匹配,是最基本的匹配算法。通常直接利用整幅图像的灰度信息,建立两幅图像之间的相似性度量,然后采用搜索算法寻找相似性度量值最大或最小的变换模型的参数值。
NCC模板匹配,是典型的基于灰度值匹配的算法,具有不受比例因子误差的影响,和抗干扰抗噪声能力强的优点。
算子:
create_ncc_model() 创建NCC模板
find_ncc_model() 搜索NCC模板
模板:
结果:
*关闭窗口
dev_close_window ()
*打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*读取图像
read_image (Image, 'printer_chip/printer_chip_01')
*画矩形区域
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*生成矩形区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*裁剪区域
reduce_domain (Image, Rectangle, ImageReduced)
*创建NCC模板
create_ncc_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'use_polarity', ModelID)
*清理窗口
dev_clear_window ()
*读取图像
read_image (Image2, 'printer_chip/printer_chip_01')
*搜索NCC模板
find_ncc_model (Image2, ModelID, -0.39, 0.79, 0.5, 1, 0.5, 'true', 0, Row, Column, Angle, Score)
*显示匹配结果
dev_display_ncc_matching_results (ModelID, 'red', Row, Column, Angle, 0)