【发布时间】:2019-10-15 07:28:46
【问题描述】:
我正在尝试将 vtkImageData 编写为 DICOM。当我尝试写入图像时,我不断收到“访问阅读冲突”。
0x00007FFDA30ECA50 处未处理的异常:0xC0000005:访问冲突读取位置 0x000001BD38D5C000
这是我的代码:
vtkSmartPointer<vtkDICOMWriter> dcmWriter = vtkSmartPointer<vtkDICOMWriter>::New();
dcmWriter->SetInputData(testDat);
dcmWriter->SetFileName(fullPath.toStdString().c_str());
dcmWriter->Update(); // this line breaks
dcmWriter->Write();
testDat 是 vtkSmartPointer<vtkImageData> 类型,其中包含数据。关于导致错误的原因有什么想法吗?我在网上找不到类似的东西。
我按照这个例子:https://github.com/dgobbi/vtk-dicom/blob/master/Examples/TestDICOMWriter.cxx
我没有元数据,但这应该不是问题。
【问题讨论】:
-
您是否为相同的数据尝试过不同的写入器?这样你就可以排除
testDat的问题。 -
我尝试了 vtk 的 TIFF 阅读器并使用“”对文件路径进行硬编码。一切都按预期工作。然而,使用 DICOM 编写器的“”对路径进行硬编码不起作用。是的,它是 Qt (QString),我试图将其转换为 const char*。
-
“testDat”从何而来?
-
testDat 是 vtkImageData