
数字图像处理实验报告(图像灰度变换处理)_2.docx
8页数字图像处理实验报告(图像灰度变换处理)数字图像处理实验报告班级:姓名:学号: 数字图像处理实验报告 一.实验名称:图像灰度变换二.实验目的: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函数将图像读入Matlab2.产生灰度变换函数T1,使得:0.3r r 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.5s =(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位于其他区间时, 保持其灰度与原图像一样五.实验程序:%1figure;subplot(4,3,1);i=imread(Fig3.10(b).jpg);i=im2double(i);imshow(i);title(1);%2subplot(4,3,2);r=[0:0.001:1];s=[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].*(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);%3subplot(4,3,4);r=[0:0.001:1];s=[r0.5].*((r-0.5).^0.2+0.12);plot(r,s);title(3p,); subplot(4,3,5); T2=[i0.5].*((i-0.5).^0.2+0.12); imshow(T2);title(3i,);imwrite(T2,Fig3.10(b)_T2.jpg,jpg);%4subplot(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,);%5subplot(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);%6subplot(4,3,11);r=[0:0.001:1];s=[r=0.2]*0.6;plot(r,s);title(6p,);subplot(4,3,12);s6=[i=0.2]*0.6+[i>0.4].*i+[iimshow(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对图像的一些处理方法总之,这次的收获很多 -全文完-8。
