繁体   English   中英

如何缩小 np.array 中的图像?

[英]How scale down an image in a np.array?

我有一个输入 np.array。 在每个单元格中有一个 512x512 像素的 DICOM 图像。 我的目标是将所有图像缩小到 128x128 像素,因为这样我的输入必须是使用形状 (None, 128, 128, 1) 构建的模型的 np.array。 我的输入数据称为 train_patient 和 train_mask。 这里有一些细节:

train_patient[0].shape

(512, 512)

train_patient.shape

(129, 512, 512)

train_patient.size

33816576

train_patient[0].size

262144

我试过

sample_width = 128
sample_height = 128
train_patient = np.resize(train_patient, (129, sample_width, sample_height, 1)) 

但是当我绘制它时,图像与原始图像完全不同。

我试过的另一个选择是

train_patient = cv2.resize(train_patient, dsize=(128, 128), interpolation=cv2.INTER_CUBIC)  

当我绘制它时,图像与原始图像不成比例,但实际上它们代表相同的内容。 如何制作比例图像? 然而,这种类型的 train_patient 数据不适合作为构建模型的输入数据进行重塑。 我不知道我在做什么,因为我是初学者,所以请帮助我! 非常感谢您的宝贵时间

所以我的建议是使用skimage因为它适用于ndarrays您的使用应该非常简单。

https://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.rescale

您想将图像重新缩放4 ,在这种情况下,这意味着您需要使用1 / 4 = 0.25缩放。

from skimage.transform import rescale

image_rescaled = rescale(image, 0.25)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM