计算机视觉任务中,经常要使用图像插值方法来改变图像的尺寸,如图像金字塔、图像超分辨的预处理等,可以说图像插值方法是计算机视觉任务的基本操作。本文对matlab里的图像插值方法进行分析比较。
首先简单介绍matlab的插值方法,然后对这些方法进行分析比较。matlab里使用插值方法改变图像尺寸的函数是imresize,imresize主要有三个参数,第一个是待处理图像,第二个是缩放尺寸,第三个是可选的插值方法METHOD,以下是matlab官方文档对imresize函数插值方法METHOD的说明:
METHOD can be a string naming a general interpolation method:
'nearest' - nearest-neighbor interpolation
'bilinear' - bilinear interpolation
'bicubic' - cubic interpolation; the default methodMETHOD can also be a string naming an interpolation kernel:
'box' - interpolation with a box-shaped kernel
'triangle' - interpolation with a triangular kernel (equivalent to 'bilinear')
'cubic' - interpolation with a cubic kernel (equivalent to 'bicubic')
'lanczos2' - interpolation with a Lanczos-2 kernel
'lanczos3' - interpolation with a Lanczos-3 kernel
详细见https://ww2.mathworks.cn/help/matlab/ref/imresize.html?s_tid=doc_ta#mw_3957e4e8-42f0-4156-82e2-822a8241b143 。本文主要比较nearest、bilinear、bicubic、lanczos2和lanczos3这几种插值方法。实验所使用的图像为Art:

原始图像尺寸为1390×1110,选用的缩放因子为3,使用PSNR与SSIM作为评价标准。本文内容主要分为以下几个部分:
- 插值方法之间的相似度比较
- 插值方法下采样上采样的比较——RGB三通道
- 插值方法下采样上采样的比较——亮度通道y,由rgb2ycbcr转换
1、插值方法之间的相似度比较
对于原始尺寸1390×1110的Art图像,按照缩放因子3对原始图像进行下采样,得到低分辨率图像。使用不同的插值方法进行这一操作,比较低分辨率图像之间的相似程度,结果如下:
nearest | bilinear | bicubic | lanczos2 | lanczos3 | |
nearest | 35.115/0.963 | 36.004/0.969 | 35.973/0.968 | 35.961/0.968 | |
bilinear | 45.604/0.997 | 45.486/0.997 | 41.652/0.992 | ||
bicubic | 63.529/0.999 | 48.558/0.998 | |||
lanczos2 | 48.763/0.998 | ||||
lanczos3 |
2、插值方法下采样上采样的比较——RGB三通道
对原始图像,按照缩放因子3对原始图像下采样再上采样,matlab读入彩色图像为RGB三通道图像,上采样下采样操作分别对每一个单通道进行。下表的结果是使用对应插值方法得到的结果与原始图像(ground truth)的比较结果:
down|up | nearest | bilinear | bicubic | lanczos2 | lanczos3 |
nearest | 28.320/0.834 | 30.331/0.883 | 30.214/0.882 | 30.207/0.882 | 30.026/0.876 |
bilinear | 29.342/0.852 | 30.382/0.876 | 30.742/0.885 | 30.749/0.885 | 30.893/0.889 |
bicubic | 29.241/0.851 | 30.996/0.893 | 30.918/0.890 | 30.912/0.890 | 30.667/0.883 |
lanczos2 | 29.238/0.851 | 30.671/0.883 | 30.915/0.890 | 30.920/0.890 | 30.998/0.893 |
lanczos3 | 29.089/0.848 | 30.775/0.886 | 30.939/0.891 | 30.944/0.891 | 30.968/0. |
3、插值方法下采样上采样的比较——亮度通道y,由rgb2ycbcr转换
对原始图像,首先将读入的RGB彩色图像使用matlab的函数rgb2ycbcr转换到ycbcr三通道,然后再将y通道分离出来,仅对y通道做下采样再上采样。下表的结果是对y通道使用对应的插值方法得到的结果与原始图像的y通道比较的结果:
down|up | nearest | bilinear | bicubic | lanczos2 | lanczos3 |
nearest | 28.320/0.834 | 30.331/0.883 | 30.214/0.882 | 30.207/0.882 | 30.026/0.876 |
bilinear | 29.342/0.852 | 30.382/0.876 | 30.742/0.885 | 30.749/0.885 | 30.893/0.889 |
bicubic | 29.241/0.851 | 30.996/0.893 | 30.918/0.890 | 30.912/0.890 | 30.667/0.883 |
lanczos2 | 29.238/0.851 | 30.671/0.883 | 30.915/0.890 | 30.920/0.890 | 30.998/0.893 |
lanczos3 | 29.089/0.848 | 30.775/0.886 | 30.939/0.891 | 30.944/0.891 | 30.968/0.892 |