我想显示具有光度解释MONOCHROME2的DICOM文件。
图像的某些规格是 -
Rows: 1024
Columns: 1024
No of Frames: 622
Bits Allocated: 16
Bits Stored: 10
High Bit: 9
Pixel Representation: 0
Sample per pixel: 1
我正在使用gdcmRegionReader
以下列方式提取单帧字节数组。
gdcm.ImageRegionReader _regionReader = new gdcm.ImageRegionReader();
_regionReader.SetRegion(_boxRegion); // _boxRegion is some region
_regionReader.ReadIntoBuffer(Result, (uint)Result.Length);
Marshal.Copy(Result.ToArray(), 0, _imageData.GetScalarPointer(),
Result.ToArray().Length);
_viewer.SetInput(_imageData); // _viewer = vtkImageViewer
所以有人可以帮助我加载和显示MONOCHROME2 dicom图像。
答案 0 :(得分:1)
免责声明:我从未使用过该工具包。我试图根据我对DICOM的理解来回答。根据我对DICOM的体验,语法很少是问题所在。真正的问题是概念和术语。
我在输出中看到两个问题。
一个是关于渲染图像的一部分。请注意,整个数据不会在输出中呈现。检查工具包文档,了解在渲染图像时如何设置尺寸/边界。
其他问题是关于输出质量。最初,我怀疑传输语法可能是问题。我不认为它只是确保你在渲染之前不妥协的形象。我不确定你的工具包在渲染时如何处理压缩。
还有其他方法可用于渲染工具包中的像素数据。
_ImageViewer.SetRenderWindow(renderWindow);
_ImageViewer.GetRenderer().AddActor2D(sliceStatusActor);
_ImageViewer.GetRenderer().AddActor2D(usageTextActor);
_ImageViewer.SetSlice(_MinSlice);
_ImageViewer.Render();
以上代码是从“http://www.vtk.org/Wiki/VTK/Examples/CSharp/IO/ReadDICOMSeries”复制的。那里有详细的代码。
以下链接也可能有所帮助:
http://vtk.1045678.n5.nabble.com/How-to-map-negative-grayscale-to-color-td5737080.html
https://www.codeproject.com/Articles/31581/Displaying-bit-Images-Using-C
答案 1 :(得分:1)
您应该在代码中使用vtkGDCMImageReader2
。 vtkGDCMImageReader2
正好封装gdcm::RegionReader
以便与VTK绑定。
如果由于某种原因您无法直接使用此类,只需将主函数中的C ++代码复制/粘贴到C#代码中即可。
请参阅: