图像缩放模块可将输入图像缩放到指定尺寸,使其适应不同大小的特征模式,提高特征匹配的准确性。
本节内容包含:
该模块的算法工作流程如下:
目标图像坐标映射到输入图像上计算公式如下图所示。
前两个公式中,DstW、DstH表示目标图像的宽度和高度;srcW、srcH表示输入图像的宽度和高度;两者均已知,则可计算scale1和scale2的值,表示输入图像的缩放比例。
计算得出scale1和scale2的值后,再根据后两个公式可得到“目标图像上像素”到“输入图像”的转换关系,最后进行插值即可。
插值计算方式包括最近邻、双线性和双三次,实现原理如下图所示(红框为插值目标):
如果使用最近邻插值,则红框的灰度值将等于第0行2列的灰度值,因为红框中心距离其最近。
如果使用双线性插值,则红框灰度值将由其覆盖的4个像素点决定。每个点贡献的权重和其到红框中心的距离成反比。
如果使用双三次插值,则使用红框周边4×4的16个像素点的灰度值计算。每个点的权重和其到红框中心的距离同样呈反比。
在流程中,图像缩放的前序模块一般为图像源,后序模块一般为模板匹配相关模块。
如下应用示例通过图像缩放模块将分辨率为222*168的图像转换为800*800的图像,使其特征更符合实际部件。最后将转换后的图像输出至快速匹配进行特征匹配。
以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。
设置输出图像高度及宽度。
将目标像素点的四个相邻像素点中最近邻像素点的灰度值赋予目标像素点。更多原理详情参见上文模块原理提及的像素插值计算。
该插值类型计算量小,耗时短,但生成的灰度图像可能不连续。
在像素矩阵上进行x和y两个方向线性插值求得目标像素点的灰度值。更多原理详情参见上文模块原理提及的像素插值计算。
该插值类型计算量较大,耗时较长,生成的灰度图像连续,但轮廓可能略微模糊。
通过像素矩阵中最邻近的16个采样点加权平均得到目标像素点的灰度值。更多原理详情参见上文模块原理提及的像素插值计算。
双三次插值法精度高,生成的灰度图具有平滑的边缘,图像质量损失少,但计算量较大,耗时较长。
启用/关闭抗混叠滤波器。启用后,可改善缩放后出现的锯齿状像素点。原理是裁剪高频信号,对图像的插值计算使用适当的采样速率。
启用抗混叠前后的效果对比参见下图。
该模块输出结果中各项参数详情,请参见图像缩放模块的输出结果。