由于显示基于Dicoms的MPR视图.我从一系列dicom文件中制作了一个3D数组.我从Coronal和Sagittal那边展示它.
My 3D array includes:
- z = count of dicoms
- c = column value for every dicoms
- r = Row value for every dicoms
Run Code Online (Sandbox Code Playgroud)
但我有一个问题.当切片之间存在一些空间时,通过这种方式制作图像不会显示正确的视图.因为我无法想到它们之间的模拟距离!
我不知道如何计算切片之间的空间?我想在切片之间添加额外的空间.例如,如果切片之间的空间是4.我必须添加4个时间z内切片.
我希望能达到我的意思.
mal*_*lat 16
图像位置(患者)和图像方向(患者)是计算切片之间距离时应使用的两个唯一属性.有关详细信息,请参阅此处或此处.对于实际实现,请参见此处,此实现也会考虑Frame Of Reference UID.
这个问题是关于comp.protocols.dicom的问题#1.
请参阅ImageJ错误
我相信@Matt的答案是错误的,让我在这里澄清一些事情.
DICOM定义了IOD,它定义了SOP类实例中可用的必需属性集.让我们考虑两种非常常见的情况:CT图像存储(传统)和MR图像存储(传统).所以我们需要比较两者之间的属性集:
现在让我们说我们要检查MR Image Storage支持Spacing Between Slices
,很容易跳转到:
但是,为CT Image Storage找到这个属性要困难得多:只是因为这个属性不存在(按标准).因此,唯一一次您会发现这样的属性将在扩展的 SOP类中(某些供应商可能会认为Slacing Between Slices属性在其扩展的 SOP类实例中有意义).
我同意切片厚度在CT图像存储和MR图像存储的标准中都是完美定义的,因为它们都包含 图像平面模块属性,但是不要让它们换另一个.
我在这里找到了切片厚度与切片间距的很好的总结(如果你滚动到该部分,你甚至可以播放小的演示):
在步进和拍摄CT中,切片厚度和切片之间的间距是相同的,因此这里没有大问题.然而,对于螺旋CT,这些值不相同,并且可以在任何方向上变化(它们是独立的).
[...]切片厚度由检测器宽度和间距决定,而重建间隔(=切片间距)可以任意选择.[...]
总之,计算(安全!)切片之间的间距(=重建间隔),使用图像方向(患者)和图像位置(患者)更安全,因为它们在MR图像存储或CT图像存储实例中可用.
Mat*_*att 15
DICOM具有称为间隔切片间距(0018,0088)的属性,其给出两个相邻切片之间的距离(垂直于图像平面),并且还具有称为切片厚度(0018,0050)的属性,其给出成像切片的厚度. (图像平面存在于切片的中心,一半体积在平面上方,一半在下面).图像位置(患者)(0020,0032)和图像方向(患者)(0020,0037)也是用于计算切片之间的空间关系的有用属性.
有关更详细的说明,请参阅DICOM标准第3部分的C.7.6.2节.(第409页)