Matlab中的颜色模型

来源:互联网 发布:做淘宝客服工资高吗 编辑:程序博客网 时间:2024/04/25 09:41

在图像处理与显示的过程中,为了能正确的使用颜色,提取相关颜色区域,需要建立颜色模型。当然,这种基于颜色的提取,或者说是二值化(如基于红色度的二值化),并不一定能得到理想的处理效果。常用的颜色模型有RGB、HSV、 NTSC、YCbCr和HSI。

1.RGB模型

RGB模型是最常用的颜色模型。此模型是基于笛卡尔坐标系统,三个轴分别对应R(红色)、 G(绿色)、 B(蓝色)。 原点为黑色,离原点最远的立方体的顶点对应白色。

2.HSV

HSV模型对应于圆柱坐标第中的一个圆锥子集。H即色调(hue),表示颜色种类,取值为[0,1],相应的颜色变化为红、黄、绿、蓝、紫、黑。S即饱和度(saturation),取值也是[0,1],值越大颜色越深。V即亮度(value),取值同样为[0,1],表示颜色亮度的变化过程,值越大颜色越亮。

3.YCbCr 模型

这一模型是视频图像和数字图像中常用的。Y为亮度,Cb和Cr共同描述图像的色调,其中Cb、Cr分别表示蓝色和红色分量相对参考值的坐标。 YCbCr模型的数据可以是double型,但存储空间为uint8的数据空间。

4.NTSC模型

NTSC模型是一种用于电视图像的颜色模型。该模型使用的是YIQ色彩坐标系,Y为光亮度,I为色调,Q为饱和度。

5.HSI模型

此模型是从人的视觉系统出发(HVS),用色调(hue),色饱和度(saturation),亮度(intensity)来表示的。通常把色调和饱和度统称为色度,用来表示颜色的类别和深浅程度。 与HSV模型大同小异。

6.颜色模型的转换

hsv2rgb函数,实现HSV模型到RGB模型的转换;

nstc2rgb函数,实现NTSC模型转换为RGB模型;

rgb2hsv函数,将RGB模型转换为HSV模型;

rgb2ntsc函数,将RGB模型转换为NTSC模型;

rgb2ycbcr 函数,将RGB模型转换为YCbCr模型;

ycbcr2 rgb函数,将YCbCr模型转换为RGB模型;

Matlab没有直接将RGB模型转换为HSI模型的函数,根据其转换公式(其具体公式不好输入,自己百度下吧。 ),可以简单的写出它们之间的转换程序。如下:



0 0