数字图像处理实验报告
班 级 :
姓 名 :
学 号 :
数字图像处理实验报告
一.实验名称: 图像灰度变换
二.实验目的:1 学会使用Matlab;
2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:
Matlab中经常使用的一些图像处理函数:
读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in以下及high_in以上归零。
绘制直方图:imhist(img);
直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:
1. 获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2. 产生灰度变换函数T1,使得:
0.3r r < 0.35
s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65
1+0.3(r–1) r > 0.65
用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
3. 产生灰度变换函数T2,使得:
15.9744r5 r ≤ 0.5
s =
(r–0.5)0.2+0.12 r > 0.5
用T2对原图像Fig3.10(b).jpg进行处理,打印另一处理后的新图像。
4.分别用 s = r0.6; s = r0.4; s = r0.3 对Fig3.08(a).jpg图像进行处理。为简便起见,请使用Matlab中的imadjust函数。
5.对Fig3.04(a).jpg图像实施反变换(Negative Transformation)。s =1-r;
6.对Fig3.10(b).jpg图像实施灰度切片(Gray-level slicing)。具体要求如下:
当0.2 ≤ r ≤ 0.4时,将r置为0.6, 当r位于其他区间时, 保持其灰度与原图像一样。
五.实验程序:
%1
figure;
subplot(4,3,1);
i=imread('Fig3.10(b).jpg');
i=im2double(i);
imshow(i);title('1');
%2
subplot(4,3,2);
r=[0:0.001:1];
s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1+0.3*(r-1));
plot(r,s);title('2p,');
subplot(4,3,3);
T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*(1+0.3*(i-1));
imshow(T1);title('2i,');
imwrite(T1,'Fig3.10(b)_T1.jpg','jpg');
%3
subplot(4,3,4);
r=[0:0.001:1];
s=[r<=0.5].*(r.^5)*15.9744+[r>0.5].*((r-0.5).^0.2+0.12);
plot(r,s);title('3p,');
subplot(4,3,5);
T2=[i<=0.5].*(i.^5)*15.9744+[i>0.5].*((i-0.5).^0.2+0.12);
imshow(T2);title('3i,');
imwrite(T2,'Fig3.10(b)_T2.jpg','jpg');
%4
subplot(4,3,6);
ss1=r.^0.6;
ss2=r.^0.4;
ss3=r.^0.2;
plot(r,ss1,r,ss2,r,ss3);title('4p,');
subplot(4,3,7);
s1=imadjust(i,[],[],0.6);
imshow(s1);title('41i,');
subplot(4,3,8);
s2=imadjust(i,[],[],0.4);
imshow(s2);title('42i,');
subplot(4,3,9);
s3=imadjust(i,[],[],0.3);
imshow(s3);title('43i,');
%5
subplot(4,3,10);
rr=imread('Fig3.04(a).jpg');
rr=im2double(rr);
imshow(rr);title('5i,');
ss=1-rr;
imwrite(ss,'Fig3.10(a)_ss.jpg','jpg');
%6
subplot(4,3,11);
r=[0:0.001:1];
s=[r<=0.4].*[r>=0.2]*0.6;
plot(r,s);title('6p,');
subplot(4,3,12);
s6=[i<=0.4].*[i>=0.2]*0.6+[i>0.4].*i+[i<0.2].*i;
imshow(s6);title('6i,');
imwrite(s6,'Fig3.10(b)_s6.jpg','jpg');
六.实验处理前后图像:
七.实验小结
在学习了数字图形图像处理之后,我知道了如何学会用VC++6.0和Matlab简单的处理图像,这次的实验我主要是用Matlab软件对图像灰度进行变换。
在上机操作的过程中,我遇到了一些难题,在刚开始时,我连Matlab如何使用都不知道,但是上网找到一些资料最终知道了如何使用,到后来在使用Matlab时,我不知道Matlab的一些函数的用法,如imread()函数,imshow()函数等,在运行时总会报错。但是我通过上网查找或者通过与同学讨论,最后将这些问题一一解决,虽然将结果最后弄了出来,但是我还是对Matlab的其它函数有些不懂。我想以后还需要对其进行深入的学习。在本次实验中,我感受各种不同的灰度变换方法对最终图像效果的影响。感觉很有趣,虽然用Matlab简单的处理图像相较于photoshop要麻烦一些,但是当看到数字图像处理在各个领域的应用是如此的广泛。通过本次实验我学会了很多。对其有了初步了解,在查找资料中也知道了用VC++6.0对图像的一些处理方法。总之,这次的收获很多。
第二篇:4.图像增强—直方图变换 - 数字图像处理实验报告
计算机与信息工程学院验证性实验报告
专业:通信工程 年级/班级:20##级 20##—20##学年第一学期
一、实验目的
1.掌握灰度直方图的概念及其计算方法;
2.熟练掌握直力图均衡化和直方图规定化的计算过程;
3.熟练掌握空域滤波中常用的平滑和锐化滤波器;
4.掌握色彩直方图的概念和计算方法
5.利用MATLAB程序进行图像增强。
二、实验原理
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
下面给出直方图均衡化增强图像对比度的MATLAB程序:
clc;clear all
I=imread('Fig0308(a)(pollen).tif'); %读入原图像
J=histeq(I); %对原图像进行直方图均衡化处理
imshow(I); %显示原图像
title('原图像'); %给原图像加标题名
%对原图像进行屏幕控制;显示直方图均衡化后的图像
figure;imshow(J);
%给直方图均衡化后的图像加标题名
title('直方图均衡化后的图像') ;
%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅
figure; subplot(1,2,1) ;
imhist(I,64); %将原图像直方图显示为64级灰度
title('原图像直方图') ; %给原图像直方图加标题名
subplot(1,2,2); %作第2幅子图
imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度
title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名
处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。
三、实验步骤
1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3显示原图像的直方图和经过均衡化处理过的图像直方图。
4记录和整理实验报告
四、实验仪器
1.计算机; 2.MATLAB程序;
3.移动式存储器(软盘、U盘等); 4.记录用的笔、纸。
五、实验报告内容
1.叙述实验过程;
2.提交实验的原始图像和结果图像。
七、实验图片
Fig.1 pollen.jpg
六、实验结果
教师签名:
年 月 日