当前位置:   article > 正文

8. DICOM图像显示-DCMTK-图像显示和源码分析_dicom dcmtk

dicom dcmtk

  上篇文章讲了dcmtk的dcmimgle模块的DicomImage类的像素数据的多个处理过程,最终通过DicomImage类的getOutputData()获取P values值,即最终显示的灰度值。
  DicomImage类封装了丰富了的图像处理方法,是dcmtk推荐使用的图像处理外部接口类。

  1. 获取灰度值

  DicomImage提供了两个方法获取灰度值
  bits是每个采样点的位数,灰度值是8bit
  frame是要获取的帧数,多帧图像可以选择具体第几帧的图像灰度值,单帧图像只能使用默认值0
  planar是彩色像素的RGB排列规则,对于彩色图像可选择0和1,对于灰阶图像输入值被忽略:
  0 = color-by-pixel (R1G1B1…R2G2B2…R3G3B3…),
  1 = color-by-plane (R1R2R3…G1G2G3…B1B2B3…)
  (only applicable to multi-planar/color images, otherwise ignored)
getOutputData()内部调用OutputData->getData()
  第一个方法返回的是指针引用,指向DicomImage类对象的内部数据OutputData
  第二个方法的输入buffer要先申请size大小的内存空间,getOutputData内部复制灰度值数据到buffer中。size由getOutputDataSize方法获得。

inline const void *getOutputData(const int bits = 0,
                                 const unsigned long frame = 0,
                                 const int planar = 0)
  • 1
  • 2
  • 3
inline int getOutputData(void *buffer,
                         const unsigned long size,
                         const int bits = 0,
                         const unsigned long frame = 0,
                         const int planar = 0)
  • 1
  • 2
  • 3
  • 4
  • 5
inline unsigned long getOutputDataSize(const int bits = 0) const
  • 1

  对应的内存释放方法

inline void deleteOutputData() const
  • 1
  1. 获取宽高

  还需要图像的行和列的像素个数
  宽度,行方向的像素个数,即列数。

inline unsigned long getWidth(
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/289861
    推荐阅读
    相关标签
      

    闽ICP备14008679号