我有一个输入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)