实验六彩色图像得处理
一、实验目得
1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。
2、了解RGB图像与不同颜色空间之间得转换.
3、掌握彩色图像得直方图处理方法。
二、实验内容及步骤
1、RGB图像与索引图像、灰度级图像得转换。
close all
RGB=imread('flowers、tif’);
[R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色得索引图像figure
imshow(R_i,map)
[R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像
figure
imshow(R_g)
思考:
将RGB图像’flowers、tif’分别转换为32色、256色、1024色索引图像,就是否调色板所表示得颜色值越多图像越好?
close all
RGB=imread('flowers、tif’);
[R_i1,map]=rgb2ind(RGB,8);%RGB图像转换为8色得索引图像[R_i2,map]=rgb2ind(RGB,32);%RGB图像转换为32色得索引图像
[R_i3,map]=rgb2ind(RGB,256);%RGB图像转换为256色得索引图像
[R_i4,map]=rgb2ind(RGB,1024);%RGB图像转换为1024色得索引图像
Subplot(221);imshow(R_i1,map);title(’8色得索引图像');
Subplot(222);imshow(R_i2,map);title(’32色得索引图像');
Subplot(223);imshow(R_i3,map);title('256色得索引图像’);
Subplot(224);imshow(R_i4,map);title('1024色得索引图像
');
结论:随着索引值得增加图像得质量也有增加,更加清晰,色彩也更加鲜明.但不就是不就是颜色值越多越好.当索引值过高时,会出现无法识别而致模糊得情况出现。
2、RGB图像与不同颜色空间得转换。
(1) RGB与HSI颜色空间得转换
HSI应用于彩色图像处理。
实验六文件夹中rgb2hsi()函数将RGB颜色空间转换为HSI空间并显示各分量,hsi2rgb()函数就是将HSI颜色空间转换为RGB颜色空间。
close all
x=imread(’flowers、tif');
figure
imshow(x)
title('RGB’)
x_hsi=rgb2hsi(x);%RGB颜色空间转换成HSI颜色空间,
%并显示H、S、I各分量
figure
imshow(x_hsi)
title('HSI')
x_h_r=hsi2rgb(x_hsi); figure
imshow(x_h_r)
title('HSI——>RGB')
(2)RGB与CMY颜色空间转换
CMY颜色空间运用在大多数在纸上沉积彩色颜料得设备,如彩色打印机与复印机。
CMY(青、深红、黄)就是RGB颜色空间得补色。
close all
x=imread('flowers、tif');
X =im2double(x);
R=X(:,:,1);
G=X(:,:,2);
B=X(:,:,3);
C=1-R;
M=1-G;
Y=1—B;
R1=1—C;
G1=1-M;
B1=1-Y;
CMY=cat(3,C,M,Y);
RGB1=cat(3,R,G,B);
subplot(1,3,1),imshow(X);title('RGB') ;
subplot(1,3,2),imshow(CMY);title(’CMY') ;
subplot(1,3,3),imshow(RGB1);title('CMY—-—>RGB') ;
思考:
如何将RGB图像分解出其R、G、B颜色分量?结果类似下图. close all
x=imread(’flowers、tif');
X = im2double(x);
R=X(:,:,1);
G=X(:,:,2);
B=X(:,:,3);
C1=R;
M1=G-G;
Y1=B-B;
C2=R-R;
M2=G;
Y2=B-B;
C3=R—R;
M3=G-G;
Y3=B;
R=cat(3,C1,M1,Y1);
G=cat(3,C2,M2,Y2);
B=cat(3,C3,M3,Y3);
subplot(1,3,1),imshow(R);title('R');
subplot(1,3,2),imshow(G);title(’G’);
subplot(1,3,3),imshow(B);title(’B');
3、彩色图像得直方图处理
(1)在HSI颜色空间对I(强度)分量进行调整及直方图均衡化。
close all
x=imread('flowers、tif’);
figure
imshow(x)
title(’RGB’)
x_hsi=rgb2hsi(x);% RGB颜色空间转换成HSI颜色空间,
%并显示H、S、I各分量
h=x_hsi(:,:,1);
s=x_hsi(:,:,2);
i=x_hsi(:,:,3);
i1=imadjust(i,[01],[],0、6);%对I分量进行灰度值调整,使图像更亮
x_hsi=cat(3,h,s,i1);
x_h_r=hsi2rgb(x_hsi);% HSI空间转换为RGB空间
figure
imshow(x_h_r)
title(’imadjust(i,[],[],0、6)')
i2=histeq(i); %对I分量进行直方图均衡化,加强对比度
x_hsi=cat(3,h,s,i2);
x_h_r=hsi2rgb(x_hsi); %HSI空间转换为RGB空间
figure
imshow(x_h_r)
title(’histeq(i)')
(2) RGB颜色空间对全彩色进行直方图处理
close all
x=imread('flowers、tif');
figure
imshow(x)
title('RGB’)
r=x(:,:,1); g=x(:,:,2);b=x(:,:,3);
r1=imadjust(r,[01],[],0、6);%对R分量进行灰度值调整
g1=imadjust(g,[0 1],[],0、6); %对G分量进行灰度值调整b1=imadjust(b,[0 1],[],0、6); %对B分量进行灰度值调整
x1=cat(3,r1,g1,b1);
figure; imshow(x1)
title(’imadjust(r/g/b,[],[],0、6)')
r2=histeq(r);%直方图均衡化
g2=histeq(g);
b2=histeq(b);
x2=cat(3,r2,g2,b2);%处理后得R、G、B分量合并回RGB图像figure;imshow(x2)
title(’histeq(r/g/b)')
思考:
ﻩ参考彩色图像得直方图处理方法,分别对RGB图像’flowers、tif’进行尺寸为5*5得均值平滑滤波及拉普拉斯锐化。
(在HIS空间或RGB空间都可以)结果类似下图.
拉普拉斯算子:h=[ -1 -1 -1;
—1 8 —1;
-1 -1—1;];(1)5*5均值平滑滤波
close all;
x=imread('flowers、tif');
h=fspecial('average',5);
y=imfilter(x,h);
subplot(1,2,1);
imshow(x);title('RGB');
subplot(1,2,2);
imshow(y);title(’5*5 均值平滑滤波');
(2)拉普拉斯锐化
close all;
x=imread('flowers、tif');
h=[-1—1 -1;
-1 8 —1;
—1 —1—1;];
y=imfilter(x,h);
subplot(1,2,1);
imshow(x);title('RGB');
subplot(1,2,2);
imshow(y);title(’拉普拉斯滤波’);
三、实验报告
1、按照实验步骤做实验;
2、记录实验结果,并作出总结;
3、按照实验报告格式写出报告。
四、实验心得及机会
通过这次实验,我学会并了解了许多有关数字图像处理方面得知识。
以前只就是瞧着课本上得内容学习,对很多知识只就是生分得了解,但就是不懂得如何应用,通过做实验,自己动手,对图像做一系列得处理与变换,体会到了各种参数对数字图像得影响。
通过此次实验也发现了自己得而许多问题,在对于MATLAB软件得应用上面我还有许多不足,尤其就是对如何编写M文件方面很难掌握,仍有待加强。