调整比例、调整大小和缩小比例

Rescale 操作根据给定的比例因子调整图像的大小。比例因子可以是单个浮点值,也可以是多个值-每个轴一个。

Resize 用途相同,但允许指定输出图像形状而不是比例因子。

请注意,当对图像进行下采样时, resizerescale 应执行高斯平滑以避免锯齿瑕疵。请参阅 anti_aliasinganti_aliasing_sigma 这些函数的参数。

Downscale 用于使用作为函数参数给定的大小因子的每个块的元素的局部平均值,以整数因子对n维图像进行下采样的目的。

Original image, Rescaled image (aliasing), Resized image (no aliasing), Downscaled image (no aliasing)
import matplotlib.pyplot as plt

from skimage import data, color
from skimage.transform import rescale, resize, downscale_local_mean

image = color.rgb2gray(data.astronaut())

image_rescaled = rescale(image, 0.25, anti_aliasing=False)
image_resized = resize(image, (image.shape[0] // 4, image.shape[1] // 4),
                       anti_aliasing=True)
image_downscaled = downscale_local_mean(image, (4, 3))

fig, axes = plt.subplots(nrows=2, ncols=2)

ax = axes.ravel()

ax[0].imshow(image, cmap='gray')
ax[0].set_title("Original image")

ax[1].imshow(image_rescaled, cmap='gray')
ax[1].set_title("Rescaled image (aliasing)")

ax[2].imshow(image_resized, cmap='gray')
ax[2].set_title("Resized image (no aliasing)")

ax[3].imshow(image_downscaled, cmap='gray')
ax[3].set_title("Downscaled image (no aliasing)")

ax[0].set_xlim(0, 512)
ax[0].set_ylim(512, 0)
plt.tight_layout()
plt.show()

脚本的总运行时间: (0分0.242秒)

Gallery generated by Sphinx-Gallery