彩色图像处理实习
一、实习目的与要求
1.学习、理解彩色图像中的 RGB、CMY/CMYK、HSI 彩色模型及其变换;
2. 掌握 RGB、CMY/CMYK、HSI 彩色模型变换算法,并在 matlab 环境中实现这些算
法;
3. 提交 RGB->HSI、HSI->RGB 变换的 matlab 程序
二、实习内容
1. 以彩色图像 newschool_06_quickbird_multi321.jpg 为例,了解彩色图像在计算机中以
RGB 彩色模型存储的数据结构模式;
>> im=imread('newschool_06_quickbird_multi321.jpg'); %用 matlab 之 imread 函数读出
图像 newschool_06_quickbird_multi321.jpg,将其数据存入变里 im,从 matlab
界面的变量窗口可以看出,变量 im 为三维矩阵,矩阵的第一层为 R 分量,矩
阵的第二层为 G 分量,矩阵的第三层为 B 分量。
>>imshow(im) %显示图像,计算机中显示彩色,是在 RGB 彩色空间中,按 RGB 三
原色合成原理显示彩色
>> figure,imshow(im(:,:,1)) % 利用 figure 函数开启一个新的图像视窗,并以图像形式
显示矩阵的第一层,即彩色图像的 R 分量;
>> figure,imshow(im(:,:,2)) % 利用 figure 函数开启一个新的图像视窗,并以图像形式
显示矩阵的第二层,即彩色图像的 G 分量;
>> figure,imshow(im(:,:,3)) % 利用 figure 函数开启一个新的图像视窗,并以图像形式
显示矩阵的第三层,即彩色图像的 B 分量;
调换三维矩阵 im 的层间组合方式,即改变原来的 RGB 组合方式,并查看结果。
例:将矩阵 im 的第一层与第二层对调,即将原来的第二层变为 R 分量,原来的第一层
变为 G 分量,第三层不变,仍作为 B 分量。用 imshow 查看新合成 RGB 彩色图像。方法如
下:
>>im213=zeros(size(im)); %先定义一个大小与 im 相同的零矩阵变量 im213;
>> im213 (:,:,1)=im(:,:,2); %将矩阵 im 的第二层赋予矩阵 im213 的第一层;
>> im213 (:,:,2)=im(:,:,1); %将矩阵 im 的第一层赋予矩阵 im213 的第二层;
>> im213 (:,:,3)=im(:,:,3); %将矩阵 im 的第三层赋予矩阵 im213 的第三层;
>> im213=uint8(im213); %将矩阵数据类型转换为无符号 8 位二进制型;
>>figure, imshow(im213); %显示新图像,注意色彩的变化。
2. 按下列算法,用 Matlab 编写 RGB->HSI、HSI->RGB 变换函数,函数名分别命为
rgb2hsi,hsi2rgb。并以彩色图像 newschool_06_quickbird_multi321.jpg 为例,检验程序的正
确性,显示 RGB->HIS 变换后的 H、S、I 三个分量。可能用到的 matlab 中的几个函数:余
弦函数 cos()<注:该函数输入变量是弧度而不是度,如求 60 度角的余弦值,应输入
cos(60*pi/180),而不是 cos(60)>,反余弦函数 acos(),求平均值函数 mean(),求最小值函数
min(),求平方根函数 sqrt()。
评论6