图像插值的五种方式
INTER_NEAREST
对于最近邻插值,该块将附近转换后的像素值的值用作输出像素值。
例如,假设此矩阵我们以这个矩阵为例:
以上代表您的输入图像。 您想使用最近邻插值在正水平方向上将此图像平移1.7像素。 以下步骤说明了块的最近邻插值算法
从而得到我们最后的结果:
INTER_LINEAR
对于双线性插值,该块对每个输出像素值使用两个转换像素值的加权平均值。
还是一上面哪个初始的矩阵为例,这次我们想使用双线性插值将此图像在水平正方向平移0.5像素。 以下步骤说明了Translate块的双线性插值算法:
通过用任一侧的转换值的加权平均值替换每个输入像素值来创建输出矩阵。 结果是以下矩阵,其中输出矩阵比输入矩阵多一列:
算法过程以下图为例:
四个Q已知,我们需先找到x然后y然后求出P
INTER_AREA
如果要在每个方向上将图像缩小2倍,则可以通过以下方式调用该函数:
resize(src, dst, Size(), 0.5, 0.5, interpolation);
要缩小图像,通常使用CV_INTER_AREA插值时效果最佳,而要放大图像,通常使用CV_INTER_CUBIC(速度慢)或CV_INTER_LINEAR(速度更快,但仍然可以看到)最好。
INTER_CUBIC
通过考虑最接近的4x4已知像素邻域,Bicubic比双线性迈出了一步,共计16个像素。 由于这些像素与未知像素之间的距离不同,因此在计算中,较近的像素将具有较高的权重。 与以前的两种方法相比,Bicubic可以产生明显更清晰的图像,并且可能是处理时间和输出质量的理想组合。 因此,它是许多图像编辑程序(包括Adobe Photoshop),打印机中的标准
INTER_LANCZOS4
Lanczos重采样使用卷积核对输入图像的像素进行插值,以便计算输出图像的像素值。 Lanczos卷积核k(x)定义为:
该算法的效果非常好但是很耗时。