我想修改 DICOM 的标题并设置两个标签。这可行,但是当我想将它保存在一个新文件中时,我得到了这个异常:
NullReferenceException: Object reference not set to an instance of an object
Dicom.Network.NetworkManager.get_MachineName ()
Dicom.DicomFileMetaInformation.CreateSourceApplicationEntityTitle ()
Dicom.DicomFileMetaInformation..ctor (Dicom.DicomFileMetaInformation metaInfo)
Dicom.DicomFile.PreprocessFileMetaInformation ()
Dicom.DicomFile.Save (System.String fileName,
Dicom.IO.Writer.DicomWriteOptions options)
DICOMConverter.addMaxMin () (at Assets/Scripts/DICOMConverter.cs:67)
我的 DICOMConverter.addMaxMin() 代码是:
var dicomFile = DicomFile.Open(DICOMFilePath);
var dicomImage = new DicomImage(dicomFile.Dataset);
var header = DicomPixelData.Create(dicomImage.Dataset);
var pixelData = PixelDataFactory.Create(header, 0);
for (int x = 0; x < Convert.ToInt32(dicomFile.Dataset.Get<string>(DicomTag.Columns)); x++)
{
for (int y = 0; y < Convert.ToInt32(dicomFile.Dataset.Get<string>(DicomTag.Rows)); y++)
{
if (pixelData.GetPixel(x, y) < minValue)
minValue = pixelData.GetPixel(x, y);
if (pixelData.GetPixel(x, y) > maxValue)
maxValue = pixelData.GetPixel(x, y);
}
}
dicomFile.Dataset.AddOrUpdate(DicomTag.LargestImagePixelValue, Convert.ToString(maxValue));
dicomFile.Dataset.AddOrUpdate(DicomTag.SmallestImagePixelValue, Convert.ToString(minValue));
dicomFile.Save(@"newDicom");
当我尝试使用 Save() 方法时,它总是抛出异常。我为此使用了https://github.com/fo-dicom/fo-dicom
中的文件操作示例,但它不能正常工作。
有人有更好的保存解决方案的想法,或者我能解释一下我所缺少的吗?