北邮数字图像处理作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息与通信工程学院
数字图像处理实验报告
班级:
姓名:
学号:
彩色图像处理
一.实验目的
1.考虑下列500*500的RGB彩色图像,框内的颜色如图所示,假定将该图像转换到HSI空间,用25*25的平均模板模糊H分量图像,再转换回RGB空间,会看到什么结果?(b)重复(a),只是这次处理的是S分量。要求做实验,并简单分析结果
2.对原始图像Beauty.jpg进行彩色图像处理,使以下问题得到改善:
(1)整个画面光线偏暗
(2)画面在色彩上偏紫
(3)皮肤上有很多的雀斑
(4)右下角偏亮
二.实验环境
Windows7
MATLAB R2012a
三.实验思路
实验1:
(1)生成所需图像,框内的颜色为绿红蓝绿;
(2)将该RGB图像转换到HSI空间;
(3)用25*25的平均模板模糊H分量图像,再转换回RGB空间,并观察此时
图像的变化情况;
(4)重复(2)(3),这次处理的是S分量,观察图像的变化情况。
实验2:
(1)将原图像转化为double型;
(2)提升原图像的整体亮度;
(3)对原图像进行饱和度处理,使图片偏紫得到改善;
(4)通过RGB平滑去除色斑;
(5)通过find函数降低图片右下角的亮度;
四.实验结果
实验1:
结果分析:H分量为与红轴的夹角,S分量为圆上的点到圆心的距离,I分量为高。
(1)理论上,对H做均值滤波时,S和I的值是不变的,若掩膜内红蓝分量相同时,转化到RGB空间为绿色,若掩膜内红绿分量相同时,转换到RGB空间时依次为为红黄绿,若掩膜内蓝绿分量相同时,转换到RGB空间时依次为蓝青绿,若掩膜内红绿蓝分量都有时,则转换到RGB空间时,依次为蓝青绿黄红,观察实验结果,与理论相同;
(2)理论上,对S做均值滤波时,H,S和I分量的值都不变,做掩膜也不会影响这几个分量,因此转换到RGB空间上观察和原图结果相同,观察实验结果,与理论相同。
实验2:
(1)原图像:
(2)通过亮度提升完善原图偏暗的情况:
(3)对图片进行饱和度调整,完善原图像偏紫的问题:(4)对图片进行RGB平滑,去除原图像中的色斑:
(5)降低原图像右下角亮度,得到最终结果:
五.实验中遇到的问题及解决办法
(1)由于实验1相对简单,并未遇到大问题;
(2)在做实验2的时候,直接对原图进行处理,导致程序不能执行,后来将原图修改为double型以后,成功解决了该问题;
(3)在做实验2的时候,由于亮度提升太高,导致结果与预期相差很大,后来降低了亮度提升的幅度以后,解决了这个问题;
(4)实验2的最终效果不是很好,想了很多办法也没有解决,希望老师可以在课上具体讲解一下。
六.实验总结及心得体会
实验总结:
根据实验要求,按照书本以及网上的资料提供的基本方法,得到上面的实验结果,经过分析,最终得到的实验结果和要求基本一致,综上所述,完成了本次实验。
心得体会:
在这次实验的开始,找到了实验的相关内容,因此实验的目标比较明确,不过在编写代码的时候仍然遇到了一些问题,后来经过查阅资料,解决了这些问题。但是实验2的效果仍然不是很理想。通过这次实验,对彩色图像的处理有了更加深刻的理解,较好的掌握了彩色空间的转换,尤其是RGB与HSI空间之间的相互转换。同时掌握了如何提升和降低彩色图像的亮度,以及对彩色图像的RGB 平滑处理,调整彩色图像的饱和度。此外,对课内知识也有了更加形象的认识。
七.源程序
实验1:
clear all;
% 生成红绿蓝的格子图案
A = ones(250,250);
B = zeros(250,250);
r = cat(1,cat(2,B,A),cat(2,B,B));
g = cat(1,cat(2,A,B),cat(2,B,A));
b = cat(1,cat(2,B,B),cat(2,A,B));
rgb = cat(3,r,g,b);
hsi=rgb2hsi(rgb); %将RGB图像转换为hsi空间
h=hsi(:,:,1);
s=hsi(:,:,2);
i=hsi(:,:,3);
K = fspecial('average',[25 25]); % 25*25的平均模板
H = imfilter(h,K,'replicate'); %模糊h分量
hsi1 = cat(3,H,s,i);
rgb1=hsi2rgb(hsi1); %将hsi图像转化为RGB空间
S = imfilter(s,K,'replicate'); %模糊s分量
hsi2 = cat(3,h,S,i);
rgb2=hsi2rgb(hsi2); %将hsi图像转化为RGB空间
%显示图像
subplot(2,2,1),imshow(rgb), title('原图');
subplot(2,2,2),imshow(rgb1,[]), title('H模糊后的图像');
subplot(2,2,3),imshow(rgb2,[]), title('S模糊后的图像');
实验2:
I=imread('beauty.jpg');
I=im2double(I); %将原图像转化为double型
HSI= rgb2hsi(I); %将RGB图像转换到HSI空间
fH=HSI(:,:,1);
fS=HSI(:,:,2);
fI=HSI(:,:,3);
c=find(fI<0.6);%找出FI<0.6的元素,并将这些元素的线性索引值按列返回向量c中fI(c)=fI(c)*1.3; %亮度提升
I1=cat(3,fH,fS,fI); %构建多维数组
f1=hsi2rgb(I1); %将HSI图像转化为RGB空间
P = rgb2hsi(f1); %将RGB图像转换到HSI空间
fH1=P(:,:,1);
fS1=P(:,:,2);
fI1=P(:,:,3);
fS1=fS1*0.95; %图片饱和度调整
I2=cat(3,fH1,fS1,fI1); %构建多维数组
f2=hsi2rgb(I2); %将HSI图像转化为RGB空间
R= f2(:,:,1);
G= f2(:,:,2);
B= f2(:,:,3);
w = fspecial('average',[5,5]); %5*5平均模板
R1 = imfilter(R,w,'replicate');
G1 = imfilter(G,w,'replicate');
B1 = imfilter(B,w,'replicate');
f3= cat(3,R1,G1,B1);
R2 = f3(:,:,1);
G2 = f3(:,:,2);
B2 = f3(:,:,3);
R2 =imfilter(R2,w,'replicate'); %滤波处理
f4 = cat(3,R2,G2,B2); %构建多维数组
HSI = rgb2hsi(f4); %将RGB图像转化为HSI空间
H = HSI(:,:,1);