北邮数字图像处理作业_北邮数字图像处理
北邮数字图像处理作业由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“北邮数字图像处理”。
信息与通信工程学院
数字图像处理实验报告
班 级:
姓 名: 学 号:
彩色图像处理
一.实验目的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
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('最终处理结果');