您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

【Halcon】插值算法通俗讲解

时间:07-05来源:作者:点击数:

一、灰度值插值的概念

灰度值插值是图像变换所必需的方法,因为图像不是连续的函数,而是数字化的,即由与(离散的)灰度值相关联的像素组成。下图中,输出图像的结果像素不再完全对应于输入图像的一个像素。

插值就是解决这种情况,用已知的数据来估计结果像素的灰度值应该为多少,才不会让原始图像和结果图像在灰度值上有太大的差异。

在这里插入图片描述

以下介绍几种常用的插值算法:最近邻插值法(nearest_neighbor)、双线性插值法(bilinear)、等权双线性插值法(constant)、高斯加权双线性插值法(weighted)、双三次插值法(bicubic)

二、最近邻插值法

方法一:最近邻插值法(最简单, 最快, 效果最差, 因此只用于时间要求严格的应用程序)

原理:将原始图像中中心最接近结果像素中心的灰度值赋给结果像素,如下图:

在这里插入图片描述

旋转后的像素,将把红框的那个像素灰度值作为自己的灰度值

三、双线性插值法

方法二:双线性插值法(结果图像的像素灰度值受到原始图像四个相邻像素的影响,所以结果图像会比最近邻插值法更加平滑(可以认为看起来更加自然),同时需要更长的计算时间)

原理:由周围的四个相邻像素确定,如下图:

在这里插入图片描述

具体的计算公式如下:

在这里插入图片描述

式中,像素中心点之间的距离是归一化的,也就是说,将原始图像的四个像素中心连成的正方形,边长为1。a、b表示距离,图中易知;h表示灰度值。

注意:最近邻插值法和双线性插值只用于旋转和放大,对于缩小的变换,不建议使用,会出现混叠的情况。要解决这一问题,就需要在图像缩放之前进行平滑处理,利于均值或者高斯滤波,而 ‘constant’ 和 ‘weighted’ 就是融入了这两种平滑方式的插值算法。

四、等权双线性插值法

方法三:等权双线性插值法(对于图像缩小的情况,由于需要进行平滑处理,因此其计算时间比双线性插值算法多;如果是图像放大,则计算时间与双线性插值相同)

原理: 如下图,先将像素进行次采样得到次像素,次像素分别进行双线性插值得到各自的灰度值,最后用所有次像素的灰度值平均值来作为这个像素的灰度值。

在这里插入图片描述

五、高斯加权双线性插值法

方法四:高斯加权双线性插值法(对于图像缩小的情况,由于需要进行平滑处理,且次采样后的次像素比等权双线性插值法多,因此其计算时间比前面两者多;如果是图像放大,则计算时间与双线性插值相同)

原理:与等权双线性插值法类似,但是会被划分成3*3的次像素,且每个次像素在贡献自己的灰度值时,权重不一样,与高斯平滑的掩膜相同。

在这里插入图片描述

六、双三次插值法

特点:没有平滑效果,也是只支持旋转和放大,处理效果比最近邻插值法好很多;如果图像只旋转,那么处理效果与双线性插值差不多,如果是旋转+放大,那么处理效果比双线性插值好很多。但是计算时间更长

七、五种插值算比较

在这里插入图片描述

所以在选用插值算法的时候,要综合考虑图像的变换情况,处理时间,处理质量等诸多方面。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门