改变图像的size(width,height)在日常的工作和生活中是很常见的操作,几乎每一个图片处理的软件都有这一功能。图像的size修改其实就是一个图像重新采样的过程,放大图像称为上采样/插值(upsamping),缩小图像称为小采样(downsampling)。最近我学习了一下常见的重采样算法,大致有以下几种:
1,Nearest Neighbour Resampling (最邻近)
最简单暴力的一种重采样的方法,根据目标图像的宽(高)与源图像的宽(高)比值,取源图像相对位置的像素点作为目标像素点的值。
参见:http://blog.csdn.net/jia20003/article/details/6907152
2,Bilinear Resampling(双线性/两次线性)
这种算法不像第一种那样无脑,而是参考了源像素相应位置周围4个点的值,根据相对位置取相应的权重,从而得到目标图像。
参见:http://blog.csdn.net/jia20003/article/details/6915185
3,Bicubic Resampling (双立方/两次立方)
可以看出第一种算法的目标像素值由源图上单个像素决定,第二种算法由源像素某点周围4个像素点按一定权重获得,而双立方重采样算法更进一步参考了源像素某点周围4*4个像素来获得。
参见:http://blog.csdn.net/jia20003/article/details/6919845
4,Lanczos Resampling
Lanczos算法实际上是Arnoldi算法对于对称矩阵的特殊形式,可应用于对称矩阵线性方
程组求解的Krylov子空间方法以及对称矩阵的特征值问题。很显然这种算法参考了更多
的源图像像素值,计算量增大了很多,也是效果最好的一种。
参见:http://blog.csdn.net/jia20003/article/details/17856859
5,另外还有一些其他的个人或机构发明的算法:
Hermite Resampling ,
Bell Resampling,
Mitchell Resampling 等
附:
各算法处理效果的对比,参见:https://clouard.users.greyc.fr/Pantheon/experiments/rescaling/index-en.html