如何缩小np.array中的图像



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

train_patient[0].shape

(512512(

train_patient.shape

(129512512(

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_paient数据不适合作为已构建模型的输入数据进行整形。我不知道我做什么,因为我是一个初学者,所以请帮帮我!非常感谢您抽出时间

所以我的建议是使用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)

最新更新