成熟的医学影像“调窗”(window-leveling)算法详解
之前一直以为自己对窗宽窗位的调节已经明了,但是随着开发中的应用,发觉对这部分知识的理解实际上还是存在很多疑问的,尤其是在设计打印方面,曾经的自以为明了实际上只是自己把问题简单化了而已。学无止境,看到自己的进步还是很开心的。 图像显示和打印面临的一个问题是:图像的亮度和对比度能否充分突出关键部分。这里所指的“关键部分”在 CT 里的例子有软组织、骨头、脑组织、肺、腹部等等。 技术问题: 显示器往往只有 8-bit, 而数据有 12- 至 16-bits。 如果将数据的 min 和 max 间 (dynamic range) 的之间转换到 8-bit 0-255 去,过程是个有损转换,而且出来的图像往往突出的是些噪音。 针对这些问题,研究人员先提出一些要求 (requirements),然后根据这些要求提出了一些算法。这些算法现在都很成熟。 要求一:充分利用 0-255 间的显示有效值域 要求二:尽量减少值域压缩带来的损失 要求三:不能损失应该突出的组织部分 算法分析: A. 16-bit 到 8-bit 直接转换: computeMinMax(pixel_val, min, max); // 先算图像的最大和最小值 for (i = 0; i < nNumPixels; i++) disp_pixel_val = (pixel_val - min)*255.0/(double)