《数字图像处理》冈萨雷斯学习笔记5:彩色图像处理

来源:互联网 发布:软件项目质量管理 编辑:程序博客网 时间:2024/05/18 23:28
第六章 彩色图像处理

一、MATLAB中彩色图像的表示方法

1.1、RGB图像
rgb_image = cat(3, fR, fG, fB)fR = rgb_image(:, :, 1);fG = rgb_image(:, :, 2);fB = rgb_image(:, :, 3);

通常,能够从任何透视方向观察这个彩色立方体是很有用的,函数rgbcube就用于这一目的
rgbcube( vx, vy, vz)

在提示符处键入rgbcube(vx,vy,vz)便会在MATLAB桌面上生成一个从点(vx,vy,vz)观察的RGB立方体。
%% 生成RGB立方体clcclearrgbcube(-10,-10,4);%3个参数表示观看图像视角的点坐标axis on; %坐标轴范围grid on; %画图时添加网格线title('RGB立方体1');figure,rgbcube(10,10,4);%10,10,4是默认的坐标axis on;grid on;title('RGB立方体2');

实验结果:
                

1.2、索引图像和处理索引图像的IPT函数

索引图像有两个分量,即整数的数据矩阵X和彩色映射矩阵map。

1.3、用来处理RGB图像和索引图像的IPT函数

rgb_image表示RGB图像,gray_image表示灰度图像,bw表示黑白图像,X表示索引图像的数据矩阵分量。

函数:
dither:采用“抖动”从RGB图像创建索引图像
grayslice: 从灰度级亮度图像通过多级阈值创建索引图像
gray2ind: 从灰度级亮度图像创建索引图像
ind2gray: 从索引图像创建灰度级亮度图像
rgb2ind:   从RGB图像创建索引图像
ind2rgb:   从索引图像创建RGB图像
rgb2gray: 从RGB图像创建灰度级图像

二、装换至其他彩色空间

2.1、NTSC彩色空间

主要优势是灰度信息和彩色信息是分离的。

在NTSC制式中,图像数据是由三部分组成的:亮度(Y)、色调(I)和饱和度(Q)

函数rgb2ntsc可执行变换:
yiq_image = rgb2ntsc(rgb_image)%yiq_image(:,:,1)表示亮度,yiq_image(:,:,2)表示色度,yiq_image(:,:,3)表示饱和度。rgb_image = ntsc2rgb(yiq_image)


2.2、YCbCr彩色空间

这种格式,亮度信息用单个分量Y来表示,彩色信息用两个色差分量Cb和Cr来存储。分量Cb是蓝色分量和一个参考值的差,分量Cr是红色分量和一个参考值的差。

装换函数:
ycbcr_image = rgb2ycbcr(rgb_image)rgb_image = ycbcr2rgb(ycbcr_image)

三、彩色图像的空间滤波

图像平滑、图像锐化

3.1、彩色图像平滑

单色图像的平滑(空间平均)可以通过空间掩模中的相应系数(全是1)去乘所有像素的值,并用掩模中元素的总数去除来实现。
fR = fc(:,:,1);fG = fc(:,:,2);fB = fc(:,:,3);fR_filtered = imfilter(fR,w);fc_filtered = cat(3,fR_filtered,fG_filtered,fB_filtered);

等价于:
fc_filtered = imfilter(fc,w)

3.2、彩色图像锐化

考虑使用拉普拉斯算子来使图像锐化
lapmask = [1 1 1;1 -8 1; 1 1 1];fen = imsubtract(fb,imfilter(fb,lapmask,'replicate'));imshow(fen);










 


原创粉丝点击