MATLAB图像处理:23:使用缩放函数调整图像大小


Home


本示例说明如何使用imresize函数调整图像大小。
指定放大倍数
将图像读入工作区。

 I = imread('circuit.tif');

使用imresize功能调整图像尺寸。在此示例中,您指定放大倍数。要放大图像,请指定大于1的放大倍数。
 J = imresize(I,1.25);

在放大的版本旁边显示原始图像。
  figure
 imshowpair(I,J,'montage')
 axis off


指定输出图像的尺寸
再次调整图像大小,这次指定输出图像的所需大小,而不是放大值。传递给imresize函数一个包含输出图像中的行数和列数的向量。如果指定的尺寸不能产生与输入图像相同的纵横比,则输出图像将失真。如果将向量中的元素之一指定为NaN,imresize则将计算该尺寸的值以保留图像的纵横比。要执行多分辨率处理所需的调整大小操作,请使用impyramid。
 K = imresize(I,[100 150]);
 figure, imshow(K)


指定插值方法
再次调整图像大小,这次指定插值方法。放大图像时,输出图像比原始图像包含更多的像素。imresize使用插值法确定这些像素的值,计算像素位置附近某组像素的加权平均值。imresize权重基于每个像素距该点的距离。默认情况下,imresize使用双三次插值,但是您可以指定其他插值方法或插值内核。有关imresize完整列表,请参见参考页。您还可以指定自己的自定义插值内核。本示例使用双线性插值。
 L = imresize(I,1.5,'bilinear');
 figure, imshow(L)


缩小图像时防止混叠
再次调整图像大小,这次缩小图像。减小图像尺寸时,会丢失一些原始像素,因为输出图像中的像素较少。这可能会引入缺陷,例如混叠。由于尺寸减小而发生的混叠通常显示为阶梯图案(特别是在高对比度图像中),或者在输出图像中显示为莫尔(波纹效果)图案。默认情况下,imresize对于所有插值类型(最近邻除外),都使用抗混叠来限制锯齿对输出图像的影响。要关闭抗混叠功能,请指定“抗混叠”参数并将其值设置为false。即使启用了抗混叠功能,调整大小也会引入伪影,因为当您减小图像尺寸时,信息总是会丢失。
 M = imresize(I,.75,'Antialiasing',false);
 figure, imshow(M)


======================================================================
我的测试结果及程序
下面是我测试的代码:

 


注:本文根据MATLAB官网内容修改而成。