如何通过 scikit-image 调整二值图像的大小?

How to resize a binary image through scikit-image?

我有一个用数组表示的图像,其形状为 (128,128),数据类型为 bool(这意味着它表示二进制图像)。

所以我需要将其调整为给定的比例(例如,(543, 347))。

谁能告诉我使用 python 的 scikit-image 库轻松完成此操作的方法?

您可以使用 skimage.transform.resize 库来完成。 读取图像并调整大小。

from skimage import io
from skimage.transform import resize
img = io.imread(path/to/the/image)
image_resized = resize(img, (543, 347),anti_aliasing=True)
image_resized.show()

这应该可以解决您的问题。

你想填充你的图像吗?尝试:

skimage.util.pad

Wich 将保留初始尺寸,然后尝试

skimage.util.crop

请记住,这可能会影响 operations/predictions 等。因此可能必须附加 NaN 来缓解。

看看这个tutorial

您可以使用 resize and img_as_bool 来完成工作。

演示

import numpy as np
from skimage import io
from skimage.transform import resize
from skimage import img_as_bool
import matplotlib.pyplot as plt

bool_arr = np.zeros(shape=(128, 128), dtype=np.bool)
bool_arr[32:96, 32:96] = True
resized = img_as_bool(resize(bool_arr, (543, 347)))

fig, (ax0, ax1) = plt.subplots(1, 2)
ax0.imshow(bool_arr, cmap='gray')
ax0.set_title('Boolean array')
ax1.imshow(resized, cmap='gray')
ax1.set_title('Resized')
plt.show(fig)