main content

调整图像大小 -凯发k8网页登录

此示例说明如何使用 imresize 函数调整图像的大小。

首先读取和显示图像。

i = imread("circuit.tif");
imshow(i)

figure contains an axes object. the axes object contains an object of type image.

指定放大倍率值

使用 函数调整该图像的大小。在此示例中,请指定放大倍率系数。要放大图像,请指定大于 1 的放大倍率系数。

magnificationfactor = 1.25;
j = imresize(i,magnificationfactor);

以蒙太奇方式显示原始和放大的图像。

imshowpair(i,j,method="montage")

figure contains an axes object. the axes object contains an object of type image.

指定输出图像的大小

再次调整图像大小,这次指定输出图像的所需大小,而不是放大倍率值。向 imresize 传递一个包含输出图像中行数和列数的向量。如果指定的大小不能产生与输入图像相同的纵横比,输出图像将会失真。如果将向量中的元素之一指定为 nanimresize 会计算该维度的值以保持图像的纵横比。要执行多分辨率处理所需的大小调整,请使用 。

k = imresize(i,[100 150]);
imshowpair(i,k,method="montage")

figure contains an axes object. the axes object contains an object of type image.

指定插值方法

再次调整图像大小,这次指定插值方法。放大图像时,输出图像包含的像素比原始图像多。imresize 使用插值来确定这些像素的值,计算像素位置附近的一些像素的加权平均值。imresize 根据每个像素离该点的距离来确定权重。默认情况下,imresize 使用双三次插值,但您可以指定其他插值方法或插值核。您也可以指定自己的自定义插值核。此示例使用最近邻点插值。

l = imresize(i,magnificationfactor,"nearest");

以蒙太奇方式显示使用双三次插值调整大小的图像 j,以及使用最近邻点插值调整大小的图像 l

imshowpair(j,l,method="montage")

figure contains an axes object. the axes object contains an object of type image.

缩小图像时防止锯齿

再次调整图像大小,这次缩小图像。缩小图像时,会丢失一些原始像素,因为输出图像中的像素要少一些。这可能会引入伪影,例如锯齿。由于大小减小而导致的锯齿在输出图像中通常显示为阶梯图案(尤其是在高对比度图像中)或波纹(波纹效应)图案。默认情况下,对于除最近邻点法以外的所有插值方法,imresize 都会使用抗锯齿功能来限制输出图像的锯齿影响。要关闭抗锯齿功能,请指定 "antialiasing" 名称-值参数,并将该值设置为 false。即使打开了抗锯齿功能,调整大小也会引入伪影,因为缩小图像大小时始终会丢失信息。

magnificationfactor = 0.66;
m = imresize(i,magnificationfactor);
n = imresize(i,magnificationfactor,antialiasing=false);

以蒙太奇方式显示采用和不采用抗锯齿功能的调整大小后的图像。

imshowpair(m,n,method="montage")

figure contains an axes object. the axes object contains an object of type image.

另请参阅

相关主题

    网站地图