0

我正在使用 EVIL DICOM 图像阅读器,它适用于某些文件,但某些文件给我这个错误:目标数组不够长检查 destindex 和长度以及数组的下限我找不到我购买的原始网站该程序。将不胜感激任何帮助。

4

1 回答 1

0

通过查看 Evil DICOM 代码(版本 0.5.7),我假设您正在以ImageMatrix未完全计划好的方式使用构造函数。

您所指的构造函数采用一组 DICOM 图像文件,其中每个图像的大小应该对于所有图像都是相同的。

在构造时,Image数组属性的大小等于一个图像的大小乘以私有方法中的 DICOM 图像数组的长度IntializeMatrix

接下来,构造函数遍历所有图像文件,并将每个文件中的像素数据插入到方法中的Image属性中AppendImageToMatrix。复制的像素数据在 DICOM 文件中的起始位置Image由 DICOM 文件确定ImageNumber

如果ImageNumber相对于数组的大小太高,则将Image像素数据复制到Image数组中的位置 0。

然而!如果起始位置等于Image数组的长度,如果ImageNumber恰好比文件数大一,就会发生这种情况,起始位置不会被修改,并且会尝试写入不存在的位置数组Image

发生这种情况的行是 中的第四行AppendImageToMatrix,内容如下:

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

如果您自己构建库,您可能希望将运算符更改为>运算>=符,那么应用程序至少不会抛出。或者,您可以考虑对像素数据复制进行更安全的处理。不过,这里没有详细说明的空间:-)

我无法立即在Evil DICOMImageMatrix的更新版本中找到该课程。但是,如果您在使用旧代码或新代码时遇到问题,请考虑在 Evil DICOM Github 存储库的“问题”选项卡上报告这些问题。

更新请注意,该ImageNumber属性等于 DICOM 属性Instance Number,标记 (0020,0013)。

于 2012-08-25T16:53:30.153 回答