杂识-HSV与伪彩图

HVS

  HSV(Hue, Saturation,Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间,也称六角锥体模型(Hexcone Model)。
这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。
在这里插入图片描述

色调H

  用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的中间补色是:黄色为60°,青色为180°,紫色为300°;
在这里插入图片描述

饱和度S

  饱和度S表示颜色接近光谱色的程度。
  一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
在这里插入图片描述

明度

  明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

与RGB

  RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
  HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
在这里插入图片描述

伪彩图

  伪彩色(pseudo-color)图像的每个像素值实际上是一个索引值或代码,该代码值作为色彩查找表CLUT(Color Look-Up Table)中某一项的入口地址,根据该地址可查找出包含实际R、G、B的强度值。这种用查找映射的方法产生的色彩称为伪彩色,生成的图像为伪彩色图像。用这种方式产生的色彩本身是真的,不过它不一定反映原图的色彩。在VGA显示系统中,调色板就相当于色彩查找表。从16色标准VGA调色板的定义可以看出这种伪彩色的工作方式。
  彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。例如16种颜色的查找表,0号索引对应黑色,…,15号索引对应白色。彩色图像本身的像素数值和彩色查找表的索引号有一个变换关系,这个关系可以使用Windows 95/98定义的变换关系,也可以使用你自己定义的变换关系。使用查找得到的数值显示的彩色是真的,但不是图像本身真正的颜色,它没有完全反映原图的彩色。
  伪彩色一般用于65K色以下的显示方式中,标准的调色板是在256K色谱中按色调均匀地选取16种或256种色彩。一般应用中,有的图像往往偏向于某一种或几种色调,此时如果采用标准调色板,则色彩失真较多。因此,同一幅图像,采用不同的调色板显示可能会出现不同的色彩效果。
  伪彩色图像处理是把一幅单色图像转变为彩色图像的技术。在数字图像处理中广泛地应用了伪彩色图像显示。将彩色图像转换为灰度图像是一个不可逆的过程,灰度图像也不可能变换为原来的彩色图像。而某些场合需要将灰度图像转变为彩色图像;伪彩色处理主要是把黑白的灰度图像或者多波段图像转换为彩色图像的技术过程。其目的是提高图像内容的可辨识度。其中方法有,灰度分层法,灰度变换法。
  伪彩色处理是根据特定的准则对灰度值赋以彩色的处理。由于人眼对彩色的分辫率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。这是一种视觉效果明显而技术又不是很复杂的图像增强技术。灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辫率却很强,这样将黑白图像转换为彩色图像后,人眼可以提取更多的信息量。
  伪彩色处理的基本原理是将黑白图像或者单色图像的各个灰度级匹配到彩色空间中的一点,从而使单色图像映射成彩色图像。对黑白图像中不同的灰度赋予不同的彩色。值得注意的是,伪彩色虽然能将黑白灰度转化为彩色,但这种彩色并不是真正表现图像的原始颜色,而仅仅是一种便于识别的伪彩色。
  伪彩色处理技术的实现方法有多种,如密度分层法、灰度级-彩色变换法、频域滤波法等等 [2] 。其中灰度级-彩色变换伪色彩处理技术可以将灰度图像变为具有多种颜色渐变的连续彩色图像。该方法先将灰度图像送入具有不同变换特性的红、绿、蓝三个变换器,然后再将三个变换器的不同输出分别送到彩色显像管的红、绿、蓝枪,再合成某种颜色:同一灰度由三个变换器对其实施不同变换,使三个变换器输出不同,从而不同大小灰度级可以合成不同颜色。
  最简单的伪彩色处理方法是简单的伪彩色指定。
  一幅黑白图像可以看成是二维光强度函数,我们按光的强弱分成2m个灰度级,比如m=4,即16个灰度级。使每个灰度级指定为某种伪彩色即可。比如,血管与肌肉在黑白图中只差一个灰度级,但我们可以指定血管为红色、肌肉为绿色,于是图像就极其分明,这在计算机中只需把对应的两种四位的二进制数字,分别对应红光和绿光的输出即可。
  为了得到灰度分层有更宽范围的伪彩色图像,我们可采用灰度映射伪彩色的方法:为了使灰度有更宽范围的伪彩色,首先要对黑白图像做直方图均衡化处理,使图像中原有的灰度级的概率密度更均匀,再把均衡化的图像看成是R,G,B3幅单色图像,进行独立的映射变换。

核医学与伪彩图

  核医学中使用伪彩图展示PET图像,正常PET图像是灰度图像。灰度图像只能使用从黑色到白色的灰度变换表达细胞代谢活跃值。灰度图像不能直观展现出数值分布。伪彩图可以帮助医生将灰度图像分布在色彩变换更为明显的彩色图像上;
  下图是左侧的PET伪彩图+CT灰度图和右侧的PET灰度图,明显可以看到伪彩图更清楚的表现出了高代谢的病灶位置,结合CT的解刨位置帮着医生区分病灶范围;
在这里插入图片描述

计算伪彩图

  具体计算:
    1.灰度图像是二维short类型数值图像img;
    2.预定义一个伪彩图,从0到255个RGB值,组成一个256的数组lut;
    3.设定一个灰度范围range,将img中的灰度值对照range,归一化到0到255的范围内;并通过查lut得到对应的RGB颜色;或者将img通过窗宽和窗位转换为0到255的范围内,并通过查lut得到对应的RGB颜色;

使用灰度值范围来计算RGB

  计算RGB颜色的long值可以通过RGB宏:

#define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
long color = m_pLut[255];
for(y = 0; y < height; y++){
    
    
	for(x = 0; x < width; x++){
    
    
		double value = pPixel[x + y * width];
		c = UCHAR(255 * float(value - min) / (max - min));		
		color = m_pLut[c];
		pPixel[x + y * width] = color;
	}
}

使用窗宽窗位来计算RGB

  具体计算:
  1.灰度图像是二维short类型数值图像img;
  2.将img根据窗宽和窗位的计算,所有的灰度值都归一化到0到255的范围内;
  3.查LUT表,生成对应的RGB值;

void ConvertDigitImageToGrayImageByWindowLevelAndWindowWidth(short* digitImage, short* grayImage, int size, int window_level, int window_width){
    
    
	double rate = 256.0 / window_width;
	for (size_t i = 0; i < size; i++){
    
    
		int tmp = 128.0 + (grayImage[i] - window_level)*rate;
		if (tmp < 0){
    
    
			tmp = 0;
		}
		else if (tmp > 255)	{
    
    
			tmp = 255;
		}
		digitImage[i] = tmp;
	}
}

short* pDigitImage = new short[size]{
    
    0};
long* pRGBImage = new long[size]{
    
    0};
// 1.窗宽窗位转换
ConvertDigitImageToGrayImageByWindowLevelAndWindowWidth(pDigitImage, pPixel,size,500,1000);

// 2.查LUT,生成RGB值;
long color = m_pLut[255];
for(y = 0; y < height; y++){
    
    
	for(x = 0; x < width; x++){
    
    
		int value = pDigitImage[x + y * width];				
		color = m_pLut[value];
		pRGBImage[x + y * width] = color;
	}
}

  下图是不同伪彩LUT的效果图;
在这里插入图片描述

脑电波与伪彩图

  脑电信号系统中也有伪彩图这一功能。在脑电软件中,伪彩图被成为地形图或者热力图;数值和脑电导联信号的强度有关,具体怎么计算就不得而知了。
在这里插入图片描述

参考资料

1.HSV颜色模型
2.伪彩色图像

猜你喜欢

转载自blog.csdn.net/liushao1031177/article/details/121456037
今日推荐