当前位置:文档之家› 北邮数字图像处理作业

北邮数字图像处理作业

信息与通信工程学院
数字图像处理实验报告
班级:
姓名:
学号:
彩色图像处理
一.实验目的
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);
S = HSI(:,:,2);
i = HSI(:,:,3);
d=find(i==1);
i(d)=0.7;
c=find(i>0.7);
i(c)=i(c)*0.93; %在亮度过强区域减亮度
HSI=cat(3,H,S,i); %构建多维数组
f5=hsi2rgb(HSI); %将HSI图像转化为RGB图像%显示图像
subplot(2,3,1),imshow(I), title('原图');
subplot(2,3,2),imshow(f1), title('整体亮度提升'); subplot(2,3,3),imshow(f2), title('图片饱和度调整'); subplot(2,3,4),imshow(f3), title('RGB平滑图像'); subplot(2,3,5),imshow(f4), title('进一步处理'); subplot(2,3,6),imshow(f5), title('最终处理结果');。

相关主题