赞
踩
本篇文章实现radiant对彩色图像显示和窗宽窗位调整。
前面的文章对DICOM图像的操作都是基于dcmimgle模块的DcmImage类实现的。
dcmtk官方说明:
模块dcmimgle包含访问和渲染 DICOM 单色图像的类。
模块dcmimage提供对彩色图像的支持。
模块dcmjpeg提供了对 JPEG 压缩图像的支持。
即,
dcmimgle只支持MONOCHROME1和MONOCHROME2单色图像
dcmimage只支持彩色图像
要支持彩色图像,需要以下操作
彩色图像操作,外部类依然是dcmimgle模块的DcmImage类,DcmImage内部根据图像类型实例化对应的内部图像处理类。
样例图像,超声US
dicomImg = new DicomImage(dcmParse->GetDataSet(), EXS_LittleEndianExplicit);
int size = dicomImg->getOutputDataSize(8);
unsigned char *pixelDataGrey = new unsigned char[size];
dicomImg->getOutputData(pixelDataGrey, size, 8);
int width = dicomImg->getWidth();
int height = dicomImg->getHeight();
//RGB彩色像素占3个字节
int bytes = dcmParse->GetElementValueInt(DCM_SamplesPerPixel);
PixelInfoGray pixelInfo(width, height, bytes, pixelDataGrey);
可以看到代码和CT图像一样,只是CT图像的bytes为1,表示1字节灰度值,US图像的bytes为3表示3字节RGB。
窗宽窗位操作一般指MONOCHROME类型图像。彩色图像一般使用亮度和对比度来进行调整,也可使用窗宽窗位进行调整。
窗宽窗位和亮度对比度的关系如下。
窗技术:窗技术是根据诊断需要,调节图像的对比度和亮度的调节技术,它包括窗宽,窗位的选择。
窗宽:窗宽的宽窄直接影响图像的清晰度与对比度。如果使用窄的窗宽,则显示的CT值范围小,每一灰阶代表的CT值幅度小,对比度强,适于观察密度接近的组织结构(如脑组织)。反之,如果使用宽的窗宽,则显示的CT值范围大,每一灰阶代表的CT值幅度大,则图像对比度差,但密度均匀,适于观察密度差别大的结构(如骨与软组织)。
窗位:窗位(窗中心)指窗宽范围内均值或中心值。比如一幅CT图像,窗宽为100Hu,窗位选在0Hu;则以窗位为中心(0Hu),向上包括+50Hu,向下包括-50Hu,凡是在这个100Hu范围内的组织均可显示出来并为人眼所识别。凡是大于+50Hu的组织均为白色;凡是小于-50Hu的组织均为黑色,其密度差异无法显示。
样例图像本身没有(0028,1050)Window Center和(0028,1051) Window Width元素,但界面显示默认的窗宽为256,窗位128,即最小0到最大值255,正好是1字节所能表示的整型范围。
彩色图像窗宽窗位调整和MONOCHROME方式一样。
int size = dicomImg->getOutputDataSize(8);
unsigned char *pixelDataGrey = new unsigned char[size];
dicomImg->getOutputData(pixelDataGrey, size, 8);
//计算最大值和最小值
int min = (2 * wwWl.wl - wwWl.ww) / 2.0 + 0.5;
int max = (2 * wwWl.wl + wwWl.ww) / 2.0 + 0.5;
for (int i = 0; i < len; i++)
{
if (pixelDataGrey[i] < min)
pixelDataGrey[i] = 0;
else if (pixelDataGrey[i] > max)
pixelDataGrey
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。