根据数字图像色彩表示方式的不同,数字图像有几种不同的颜色空间(颜色模型),如RGB颜色空间、HSV颜色空间、YUV颜色空间等
RGB颜色空间
RGB颜色空间是由Red(红色)、Green(绿色)、Blue(蓝色)组成的一种颜色空间。
RGB颜色空间类似一个三维的坐标系,红色、绿色和蓝色分别是一个坐标轴,每种颜色都是空间中的点,由三个数值组成,分别表示在红色、绿色、蓝色上的分量。(0,0,0)表示纯黑色,(255,255,255)表示纯白色,(0,0,255)表示蓝色。
HSV颜色空间
HSV颜色空间由Hue(色调)、Saturation(饱和度)和Value(亮度)组成。
HSV颜色空间类似一个六角椎体,如图2-10所示。色调通常指代颜色名称。饱和度表示掺入白光的分量,掺入白光的分量越多,则饱和度越低,即S值越小;掺入白光的分量越少,则饱和度越高,即S值越大。亮度表示掺入黑光的分量,掺入黑光的分量越多,则亮度越低,即V越小;掺入黑光的分量越少,则亮度越高,即V越大。1
2
3
4
5
6
7
8
9
10close all;clear all;clc;
img = imread('1.jpg');
hsv = rgb2hsv(img);
figure,
subplot(1,2,1);imshow(img);xlabel('(a)原图像');
subplot(1,2,2);imshow(hsv);xlabel('(b)转换后的hsv图像');
figure,
subplot(1,3,1);imshow(hsv(:,:,1));xlabel('H分量');
subplot(1,3,2);imshow(hsv(:,:,2));xlabel('S分量');
subplot(1,3,3);imshow(hsv(:,:,3));xlabel('V分量');
YUV颜色空间
YUV颜色空间是欧洲电视系统使用的一种色彩编码空间,在现代的彩色电视系统中,通过三管彩色摄影机和彩色CCD摄影机得到的彩色图像信号,经过分色、分别放大校正得到RGB,再进一步经矩阵变换电路得到亮度信号Y和两个色差信号R-Y(U)、B-Y(V),最后发送端对这三个信号分别编码,再使用同一信道发出去,这就是YUV颜色空间。若只有亮度Y,没有U和V,则形成了黑白灰度图像。
颜色空间的转换
RGB到HSV
在MATLAB中,函数rgb2hsv()可以实现RGB到HSV颜色空间的转换,用法如下。
hsv=rgb2hsv(rgb)rgb是输入的原RGB图像,它是一个三维的M×N×3的数组,分别是图像的红色、绿色和蓝色的分量。hsv是经过转换后的HSV图像,它是一个三维的M×N×3的数组,分别表示图像的色调、饱和度和亮度信息。
HSV到RGB
函数hsv2rgb()就可以实现HSV到RGB颜色空间的转换,格式如下。rgb=hsv2rgb(hsv)hsv是输入的原HSV图像,rgb是经过转换后的RGB图像。
RGB到YUV
没有函数,自己写。