调整图像大小 -凯发k8网页登录
此示例说明如何使用 imresize
函数调整图像的大小。
首先读取和显示图像。
i = imread("circuit.tif");
imshow(i)
指定放大倍率值
使用 函数调整该图像的大小。在此示例中,请指定放大倍率系数。要放大图像,请指定大于 1 的放大倍率系数。
magnificationfactor = 1.25; j = imresize(i,magnificationfactor);
以蒙太奇方式显示原始和放大的图像。
imshowpair(i,j,method="montage")
指定输出图像的大小
再次调整图像大小,这次指定输出图像的所需大小,而不是放大倍率值。向 imresize
传递一个包含输出图像中行数和列数的向量。如果指定的大小不能产生与输入图像相同的纵横比,输出图像将会失真。如果将向量中的元素之一指定为 nan
,imresize
会计算该维度的值以保持图像的纵横比。要执行多分辨率处理所需的大小调整,请使用 。
k = imresize(i,[100 150]);
imshowpair(i,k,method="montage")
指定插值方法
再次调整图像大小,这次指定插值方法。放大图像时,输出图像包含的像素比原始图像多。imresize
使用插值来确定这些像素的值,计算像素位置附近的一些像素的加权平均值。imresize
根据每个像素离该点的距离来确定权重。默认情况下,imresize
使用双三次插值,但您可以指定其他插值方法或插值核。您也可以指定自己的自定义插值核。此示例使用最近邻点插值。
l = imresize(i,magnificationfactor,"nearest");
以蒙太奇方式显示使用双三次插值调整大小的图像 j
,以及使用最近邻点插值调整大小的图像 l
。
imshowpair(j,l,method="montage")
缩小图像时防止锯齿
再次调整图像大小,这次缩小图像。缩小图像时,会丢失一些原始像素,因为输出图像中的像素要少一些。这可能会引入伪影,例如锯齿。由于大小减小而导致的锯齿在输出图像中通常显示为阶梯图案(尤其是在高对比度图像中)或波纹(波纹效应)图案。默认情况下,对于除最近邻点法以外的所有插值方法,imresize
都会使用抗锯齿功能来限制输出图像的锯齿影响。要关闭抗锯齿功能,请指定 "antialiasing"
名称-值参数,并将该值设置为 false
。即使打开了抗锯齿功能,调整大小也会引入伪影,因为缩小图像大小时始终会丢失信息。
magnificationfactor = 0.66; m = imresize(i,magnificationfactor); n = imresize(i,magnificationfactor,antialiasing=false);
以蒙太奇方式显示采用和不采用抗锯齿功能的调整大小后的图像。
imshowpair(m,n,method="montage")