北邮数字图像处理作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档