冈萨雷斯《数字图像处理matlab版》(五):彩色图像处理

一幅RGB图像是M*N*3的彩色像素数组。RGB图像可以看作是三幅灰度图的叠加。RGB图像的类由分量图像的类决定。

rgb_iamge=cat(3,fr,fg,fb)   顺序不能颠倒。

rgb_iamge=cat(dim,fr,fg,fb)

dim=1三个数组垂直排列。    dim=2 三个数组水平排列。

dim=3在第三个方向上堆叠。

fr=rgb_image(:,:,1);  提取分量图像(r分量)

 

 

索引图像有两个分量:

整数类型矩阵X和m*3的doube类彩色映射矩阵map

m是颜色数。 分别指定r g b 三个分量

X中的数值是map的索引。X是double类,1-à第一行,2—>第二行

X是uint8或者uint16 类,0—>第一行,1-à第二行。

这样,矩阵X中的每一个值都可以找到对应的RGB值。

显示索引图象:imshow(X,map)

 

MATLAB提供的预定义的彩色映射:

autumn  bone colorcube  cool copper 等等

 

如果X中的数值数目比m大 一种方法是多个数值对应一行,另一种是使用map(k,:)=[r(k,g(k),b(k))] 进行填充

matlab中还有以预定义的彩色映射矩阵。

 

索引图像(ind)、灰度图像(gray )、RGB图像(rgb)之间的转换:

ind2gray()   由索引图像创建灰度图像,以此类推。

dither()    采用抖动从RGB图像创建索引图像。

grayslice()  采用阈值处理从灰度图像创建索引图像。

 

除了RGB彩色空间以外,还有其他的彩色空间,例如NTSC、HSV、CMY、HSI等等,

它们可以使用相关的函数与RGB彩色空间进行转换。

如:

yiq_image=rgb2ntsc(rgb_image)

ycbcr_image=rgb2ycbcr(rgb_image)

hsv_image=rgb2hsv(rgb_image)

 

 

HSI彩色空间:

hue色彩(色调)  saturation 饱和度  intensity 强度(亮度)

RGB空间中,要求任意彩色点的亮度。做过该点与黑白顶点线端垂直的直线,二者的交点给出亮度([0,1]之间)  距离黑白连线越远的彩色点,饱和度越大,在连线上的彩色点饱和度为0。

RGB空间中的色调由三角形三个顶点的组合决定,如果一黑一白(黑白线上的点对色调无影响),色调由第三个点决定,该三角形上的彩色点具有相同的色调。

这样HIS空间所需的三个要素都可以由RGB得到了。

HIS的重要组成部分是垂直亮度轴到彩色点的向量长度(就是饱和度)和该向量与红轴的夹角(给出色调)

RGB和HSI的转换公式。冈萨雷斯《图像处理》中给出了RGB到HSI和HIS到RGB的M转换函数。

 

 

 

色调和饱和度合称色度。

形成一种特殊颜色所需要的红(X)绿(Y)蓝(Z)数量叫做三色值。

x =  

y=

z=

 

x+y+z=1。

 

 

CIEXYZ色度图

X为横坐标,y为纵坐标,显示人类感知颜色范围的图形叫做色度图。

等能量点:xyz相同  相当于白光,饱和度为0。

边界上的值是完全饱和的。一条直线上的颜色可以通过两个端点的加性组合得到。

 

彩色图像的空间滤波:

可以同灰度图的滤波一样,也可先把RGB或HIS拆成三幅图像滤波再重新组合。

锐化同灰度图相同,g=imfilte(f,w,)  result=f-g;

 

彩色图像处理中的两个重要应用:彩色边缘检测、区域分割

分别计算每幅分量彩色图像的梯度然后将结果合并与直接在RGB向量空间中计算边缘的结果是不同的。

《图像处理》附录中colorgrad()函数可以用来计算彩色梯度。

[VA,A,PPG]=colorgrad(f);

f是一幅RGB图像,T是[0,1]内的一个可选阈值(默认为0);

VG是RGB向量梯度F(x,y)  A是以弧度计的角度图像θ(x,y);PPG是通过对各个彩色平面的二维梯度图像求和形成的梯度图像。

 

函数colorgrad()可以用于检测RGB图像的边缘。

 

 

在RGB向量空间中进行图像分割,给定一个平均颜色m(向量)。对图像中每个

RGB图像进行分类,D(z,m)=|| (z-m)||。其中,z,m均为3*1的列向量。(RGB像素)设置阈值T 。返回一个与原图像大小相同的逻辑数组。像素中D(z,m)>T

逻辑数组对应1,否则对应0。然后对两部分进行分割。

附录中自定义函数colorseg()用于实现此功能。

S=colorseg(method,f,T,parameters)

Method 

1、‘mahalanobis’  输入参数为m和C  C是协方差矩阵

2、 ‘euclidean‘   输入参数是m 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值