将 16 位灰度 DICOM 图像转换为 8 位:正确的过程

use*_*035 5 c++ image-processing decoding dicom grayscale

我一直在尝试为 DICOM 图像创建图像查看器。我的程序几乎正确地读取所有 8 位彩色和灰度图像。但是,当我尝试使用图像的前 8 位打开 16 位图像时,某些部分丢失了(使用 16 位的像素将显示为黑色而不是白色)。我真的不知道如何使用窗口中心、窗口宽度、重新缩放斜率和截距。请帮助我给出将 16 位图像转换为 8 位图像的确切步骤。另外,我不需要查看使用任何压缩技术来存储像素的文件。提前致谢。

kri*_*_sw 3

关于Rescale Slope/Intercept:它是一个线性方程,因此每个像素值的计算方式为

<output pixel value> = <value from pixeldata attribute> * RescaleSlope + RescaleIntercept
Run Code Online (Sandbox Code Playgroud)

这是加窗方程的输入。确切的加窗方程在这里

关于反转像素:属性(0028,0103)可能设置为MONOCHROME1,这意味着:min=white,max=black(或“黑骨”约定,即图像包含由管和检测器之间的组织引起的衰减) 。这称为极性变换,发生在像素值变换管道的末尾。

所以你的步骤是:

  • 应用重新调整斜率/截距

  • 应用窗口

  • if PixelRepresentation==MONOCHROME1 -> 反转结果查找表