伪彩色、真彩色和直接色区别与联系

Matplotlib包含各种有助于执行不同任务的函数,其中之一是matplotlib.pyplot.pcolor()函数。 Matplotlib库的pyplot模块中的pcolor()函数有助于创建带有非规则矩形网格的pseudo-color(伪彩色)图。

伪彩色处理

将彩色图像转换为灰度图像是一个不可逆的过程,灰度图像也不可能变换为原来的彩色图像。而某些场合需要将灰度图像转变为彩色图像;伪彩色处理主要是把黑白的灰度图像或者多波段图像转换为彩色图像的技术过程。其目的是提高图像内容的可辨识度。其中方法有,灰度分成法,灰度变换法。

真彩色

(true color)真彩色是指在组成一幅彩色图像的每个像素值中,有R,G,B三个基色分量,每个基色分量直接决定显示设备的基色强度,这样产生的彩色称为真彩色。例如用RGB 5∶5∶5表示的彩色图像,R,G,B各用5位,用R,G,B分量大小的值直接确定三个基色的强度,这样得到的彩色是真实的原图彩色。

如果用RGB 8:8:8方式表示一幅彩色图像,就是R,G,B都用8位来表示,每个基色分量占一个字节,共3个字节,每个像素的颜色就是由这3个字节中的数值直接决定,如图5-08(a)所示,可生成的颜色数就是2^24 =16 777 216种。用3个字节表示的真彩色图像所需要的存储空间很大,而人的眼睛是很难分辨出这么多种颜色的,因此在许多场合往往用RGB 5:5:5来表示,每个彩色分量占5个位,再加1位显示属性控制位共2个字节,生成的真颜色数目为2^15 = 32K。

在许多场合,真彩色图通常是指RGB 8:8:8,即图像的颜色数等于2^24,也常称为全彩色(full color)图像。但在显示器上显示的颜色就不一定是真彩色,要得到真彩色图像需要有真彩色显示适配器,在PC上用的VGA适配器是很难得到真彩色图像的。

伪彩色

(pseudo color)伪彩色图像的含义是,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表(color look-up table,CLUT)的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。

彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。例如16种颜色的查找表,0号索引对应黑色,15号索引对应白色。彩色图像本身的像素数值和彩色查找表的索引号有一个变换关系,这个关系可以使用Windows 95/98定义的变换关系,也可以使用你自己定义的变换关系。使用查找得到的数值显示的彩色是真的,但不是图像本身真正的颜色,它没有完全反映原图的彩色。

直接色

(direct color)每个像素值分成R,G,B分量,每个分量作为单独的索引值对它做变换。也就是通过相应的彩色变换表找出基色强度,用变换后得到的R,G,B强度值产生的彩色称为直接色。它的特点是对每个基色进行变换。

用这种系统产生颜色与真彩色系统相比,相同之处是都采用R,G,B分量决定基色强度,不同之处是后者的基色强度直接用R,G,B决定,而前者的基色强度由R,G,B经变换后决定。因而这两种系统产生的颜色就有差别。试验结果表明,使用直接色在显示器上显示的彩色图像看起来真实、很自然。

这种系统与伪彩色系统相比,相同之处是都采用查找表,不同之处是前者对R,G,B分量分别进行变换,后者是把整个像素当作查找表的索引值进行彩色变换。

猜你喜欢

转载自blog.csdn.net/l641208111/article/details/124800803