簡體   English   中英

邪惡的DICOM-目標陣列的時間不夠長,請檢查destindex和長度以及該陣列的下限

[英]Evil DICOM -destination array was not long enough check destindex and length and the array's lower bounds

我正在使用EVIL DICOM圖像讀取器,它與某些文件配合使用很好,但是某些文件給我以下錯誤:目標數組不夠長,請檢查destindex和長度以及數組的下限,我找不到我購買的原始網站該程序。 不勝感激。

通過查看Evil DICOM代碼(版本0.5.7),我假設您使用的ImageMatrix構造函數不是完全計划的。

您所引用的構造函數采用一個DICOM圖像文件數組,其中每個圖像的大小對於所有圖像都應該是相同的。

構造后,在私有方法IntializeMatrix ,將Image array屬性的尺寸確定為等於一幅圖像的大小乘以DICOM圖像數組的長度。

接下來,構造函數遍歷所有圖像文件,並將每個文件中的像素數據插入AppendImageToMatrix方法的Image屬性中。 復制的像素數據在Image的開始位置由DICOM文件ImageNumber確定。

如果ImageNumber相對於Image數組的大小太大,則將像素數據復制到Image數組中的位置0。

然而! 如果起始位置等於 Image數組的長度(如果ImageNumber正好比文件數大ImageNumber ,則會發生此ImageNumber ),則起始位置將不會被修改,並且將嘗試寫入不存在的文件在Image數組中的位置!

發生這種情況的行是AppendImageToMatrix的第四行,內容為:

if (offset > Image.Length) { offset = 0; }

如果您是自己構建庫,則可能需要將>運算符更改為>=運算符,那么應用程序至少不會拋出異常。 或者,您可以考慮對像素數據復制進行更全面的故障保護。 盡管這里沒有詳細說明的余地,但:-)

我無法立即在Evil DICOM更新版本中找到ImageMatrix類。 但是,如果您在使用舊代碼或新代碼時遇到問題,請考慮在Evil DICOM Github存儲庫的“ 問題”選項卡上報告這些問題。

UPDATE請注意, ImageNumber屬性等於DICOM屬性Instance Number標記(0020,0013)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM