值错误:NumPy布尔数组索引分配无法将0个输入值分配给掩码为tru的N个输出值

2024-06-16 10:05:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Dicom文件,我想在体素中应用一些具有不同操作的遮罩。但是,我想保留初始数组中的位置,因为我想重建图像。这就是我所做的:

#The dicom data    
a=dicomm_data.pixel_array
#start function
my_modified_array = np.zeros_like(a)
#mask 1
m1=a[(a>limit_1) & (a<limit_2)]
m1=m1*chosen_number1 + chose_number2
my_modified_array [(a>limit_1) & (a<limit_2)] = m1

#mask 2
m2=a[(a>limit_2+1) & (a<limit_3)]
m2=m1*chosen_number3+chosen_number_4
my_modified_array [(a>limit_2+1) & (a<limit_3)] = m2

我继续戴面具。 不过,我收到的标题中提到的错误。 我读过另一篇使用numpy.where函数但仍然无法修复它的文章。


Tags: 文件the图像datamymask数组array
1条回答
网友
1楼 · 发布于 2024-06-16 10:05:18

m1是空数组但a[(a>limit_2+1) & (a<limit_3)]不是空数组时,将得到错误。我想

m2=m1*chosen_number3+chosen_number_4

应该是

m2=m2*chosen_number3+chosen_number_4

这是与m1一起使用的模式,可以修复错误。

相关问题 更多 >