python中的三维三维体素归一化

问题描述

我目前正在规范ct扫描(x,y,层)。使用cv2.reshape标准化前两个维度很简单,但是使用第三个维度...我的想法是将前两个维度展平以得到2d-numpy-array。如果我将每一层都重塑为(x * y),然后重塑为(x,y),则会得到完全不同的图像。我的肺部有img的开头,行尾有不同的灰度值。

test = cv2.resize(img,(img.shape[0] * img.shape[1],1),interpolation=cv2.INTER_LINEAR)
test = cv2.resize(test,(159,159),interpolation=cv2.INTER_LINEAR)
self.print_prediction(test,cv2.resize(temp2_masks[:,0],159)),color=False,shape=(159,159))

我确定这是一种简单的错误,但我看不到。因此,我将非常感谢您的帮助。

解决方法

cv2.resize函数不会改变数组的形状。 它实际上会调整图像的大小。您的第一行是水平挤压图像,同时垂直扩展很多图像。这些值根本不会保留。

使用numpy.reshape来改变数组的形状。