DICOM和DICOM叠加问题

时间:2011-01-31 02:37:20

标签: bitmap jpeg dicom overlays

我有一个DICOM图像,我正在使用C#读取并将其转换为16位图。创建位图但图像具有DICOM叠加。我想在创建最终的dicom位图时将叠加层刻录到位图中。我无法做到这一点。 有帮助吗?

一种方法是创建叠加数据的位图并合并2位图,但我也无法将叠加数据作为位图。 我已经捕获了二进制覆盖数据但是如何刻录成位图?

由于

3 个答案:

答案 0 :(得分:5)

有两种类型的叠加层:

1) Burned-In:是原始的。它使用较高位的单色像素数据(在像素范围之外,例如,当BitsAllocated为16且BitsStored为12时,每个像素有4个未使用的位(位12..15),可用于我不确定签名图像是如何完成的 请注意,没有标记指定图像是否具有此类叠加。 (有一个名为Burned In Annnotation的标签(0028,0301),但它意味着别的东西)。

2)覆盖模块:一系列标签(组0x600xx)保留用于覆盖。每个这样的组包含几个标签以及每像素1位的位图,其中1表示存在叠加 请注意,它不是标准的GDI位图,线条未在DWORD边界上对齐! (我不确定它是否使用相同的位字节序。)

DICOM图像可以有多个(最多16个)这样的叠加。有关确切规格,请参阅标准的第3部分。

答案 1 :(得分:2)

DICOM叠加层只是一个位图蒙版。渲染图像时,我建议只遍历像素,并在将像素设置为白色的情况下。

对于灰度图像,您必须检查光度解释,以查看它是MONOCHROME1还是MONOCHROME2。然后,您必须检查分配的位以查看最大像素值是什么,并强制将覆盖设置为该值的像素值(如果是MONOCHROME1图像)。对于MONOCHROME2图像,您必须将启用了覆盖的像素设置为最小像素值。

对于彩色图像,您可以将像素更改为特定颜色,或者根据需要将其更改为白色以显示叠加层。

答案 2 :(得分:2)

叠加平面始终为每像素1位,其中Overlay Bits Allocated为1且Overlay Bits Position (60XX, 0102)始终为0.一位叠加数据与Pixel Data元素和Overlay Data (60XX, 3000)分开编码element用于存储数据。覆盖数据元素的值表示是OW。但是,OB可用于显式VR编码。

根据PS 3.5 of DICOM standard section 8.1.2,“覆盖数据被编码为单个覆盖平面的位的直接级联,其中覆盖平面的第一位在最低有效位中编码,紧接着是下一个在下一个最重要的位中叠加平面的位。当覆盖数据在OW情况下跨越字边界或在OB情况下跨越字节边界时,它将继续被编码,最低有效位到最高有效位,分别在下一个字或字节中“。

2字节字(OW的VR)的字节顺序由编码中使用的字节顺序决定。因此,行边界没有使用填充,它从左到右,从上到下进行编码,一次是覆盖位1是覆盖平面的第一位(左上角像素)。

允许将正式叠加数据嵌入Pixel Data (7FE0, 0010)未使用位中,Overlay Bit Position (60XX, 0102)用于指示存储叠加数据的像素数据中未使用的位。在此类编码中,Overlay Bits Allocated (60XX, 0100)应与Bits Allocated (0028, 0100)Image Pixel module属性具有相同的值。 Overlay Bits Allocated的值大于1表示叠加数据嵌入在像素数据中。

甚至组(6000-601F,eeee)用于叠加平面编码,数据集每个图像最多可以有16个叠加。