我必须在c#中编写一个程序,能够解析DICOM并显示轴向,冠状和矢状切口.
好像这是很多工作,但我必须这样做!
我想,第一步就是理解DICOM文件.
我一直在阅读本教程http://dicomiseasy.blogspot.ru/,但他正在使用我不允许购买的这个RZDCX库.
关于DICOM属性还有一些很好的解释,我也一直在阅读标准的某些部分(首先是第3部分)
但是我很难理解它们.有那些图像属性:像素表示,像素数据,平面配置...我想理解它们是非常重要的是能够显示图像,我想我应该更多地了解像素实际如何工作以更好地理解.
但还有一件事我真的无法弄清楚:
我怎么或在哪里有三个不同的削减?(轴向/冠状/矢状).我一直在寻找标准中关于它们的属性,但我没有找到任何属性.所以我们可能会通过某种计算找到它们,但我不知道哪个变量应该用哪个公式?
你是对的,这是一项相当大的任务!你可能不会在这里找到能为你提供分步教程的人,但有些提示:
ImagePositionPatient(0020,0032),ImageOrientationPatient(0020,0037)和PixelSpacing(0028,0030).这些可用于正确排序切片并计算插值交叉切片.HTH,祝你好运!
这个问题已经3岁了,但也许我的回答会对某人有所帮助。
@user6867490 已经引用了 Roni Zaharia的漂亮文章。
我唯一想补充的是:您可以通过写入简单地访问图像方向(患者),标签(0020,0037)
f = dicom.read_file(dicom_file_name)
f.ImageOrientationPatient
Run Code Online (Sandbox Code Playgroud)
如果您将获得:
['1', '0', '0', '0', '0', '-1'] 你正在处理冠状平面视图
['0', '1', '0', '0', '0', '-1'] 你正在处理矢状面视图
['1', '0', '0', '0', '1', '0'] 你正在处理轴向平面视图
就我而言,有一个数据集包含一些矢状面图像和许多轴向视图(我实际上需要)。所以,我简单地遍历整个数据集并进行简单的逻辑比较以过滤掉所有的矢状线。