一、双三次插值的概念
双三次插值(Bicubic interpolation),又叫双立方插值。在数值分析这个数学分支中,双三次插值是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响,该方法通过矩形网格中最近的十六个采样点的加权平均得到,在这里需要使用两个多项式插值三次函数,每个方向使用一个。双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。双三次插值方法通常运用在一部分图像处理软件、打印机驱动程序和数码相机中,对原图像或原图像的某些区域进行放大。
补充知识:最邻近插值算法的目标像素值由源图上单个像素决定,双线性插值算法由源像素某点周围4个像素点按一定权重获得,而双立方插值算法更进一步参考了源像素某点周围4*4个像素来获得。
二、公式
双三次插值通过下式进行计算:
上式可简写为:
由上可知,对数字图像而言双三次插值算法是基于该像素最近4×4 邻域中的像素的加权平均值。
三、双三次插值的MATLAB实现
tic %计时开始
clear all;
close all;
clc;
I = imread('ngc6543a.jpg');
imshow(I);
%J = imresize(I,2,'nearest');%使用最近邻插值将图像放大到原始大小的 2倍。图像差值运算简单,但图像放大倍数大时质量差!
J = imresize(I,2,'bicubic');%使用双三次插值将图像放大到原始大小的 2倍。图像差值运算复杂,但图像质量好!
figure,imshow(J);
toc %计时结束
如果觉得本文对你和他人学习有所帮助,请关注、转发和点赞。谢谢大家!