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

时间:2018-04-10 07:38:13

标签: python numpy scikit-image

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

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

任何人都可以使用python的scikit-image库告诉我一种方法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用resizeimg_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)

results

答案 1 :(得分:0)

您可以使用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()

这可以解决您的问题。

答案 2 :(得分:0)

您想要填充图片吗?尝试:

skimage.util.pad

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

skimage.util.crop

请记住,这可能会影响操作/预测等。因此可能需要附加NaN来缓解。

看看这个tutorial