赞
踩
上篇文章讲了dcmtk的dcmimgle模块的DicomImage类的像素数据的多个处理过程,最终通过DicomImage类的getOutputData()获取P values值,即最终显示的灰度值。
DicomImage类封装了丰富了的图像处理方法,是dcmtk推荐使用的图像处理外部接口类。
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
还需要图像的行和列的像素个数
宽度,行方向的像素个数,即列数。
inline unsigned long getWidth(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。