2014-11-03 16 views
0

我有一個Dicom文件,我想在體素中應用多個不同操作的蒙版。不過,我想保留原始陣列中的位置,因爲我想重建圖像。這是我所做的:ValueError:NumPy布爾數組索引分配不能將0輸入值分配給掩碼爲true的N個輸出值

#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函數,但仍無法解決它。

+1

什麼是'a1'?它突然出現在一個沒有被提及的表達式中。 – 2014-11-03 10:19:20

+0

這是我的初始數據數組。只要糾正它。 – DimKoim 2014-11-03 10:21:32

+0

任何人提議? – DimKoim 2014-11-03 10:50:56

回答

0

m1是一個空數組,但a[(a>limit_2+1) & (a<limit_3)]不爲空時,將會出現錯誤。我認爲

應該

m2=m2*chosen_number3+chosen_number_4 

這就是你m1使用的模式,這將修復錯誤。

+0

它工作。完全是我的錯誤。謝謝。我想我應該刪除我的帖子。 – DimKoim 2014-11-03 11:19:16

+0

它發生了。如果問題只是印刷錯誤,那麼肯定的是,刪除問題是有意義的。 – 2014-11-03 11:27:07

相關問題