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

本文探讨了如何使用DCMTK的DicomImage类处理和显示DICOM图像,包括获取灰度值、图像尺寸,以及在WPF框架下显示图像。还讨论了DCMTK在默认情况下未应用窗宽窗位转换的问题,建议根据DICOM文件中的窗宽窗位进行正确显示。
摘要由CSDN通过智能技术生成

  上篇文章讲了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)
inline int getOutputData(void *buffer,
                         const unsigned long size,
                         const int bits = 0,
                         const unsigned long frame = 0,
                         const int planar = 0)
inline unsigned long getOutputDataSize(const int bits = 0) const

  对应的内存释放方法

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

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

inline unsigned long 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DICOM医学影像

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值