资源描述:
《数字图像处理-实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数字图像处理》课程实验报告姓名院系学号任课教师指导教师评阅教师实验地点实验时间实验名称:第2次空域图像处理实验目的:1继续熟悉MATLAB基本图像操作;2结合实例学习如何在程序中增加图像处理算法;3理解和掌握图像的线性变换和直方图均衡化的原理和应用;4了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;5了解噪声模型及对图像添加噪声的基本方法。实验内容完成情况:任务11)思路Imread函数用于图片的读入。这个任务是显示灰度线性变化,所以用函数imadjust来调节灰度图像的亮度。为了更直观的看到灰度变化,使用计算直方图的
2、函数imhist算出直方图。然后用imshow函数将图像以及直方图显示出来。Subplot函数用于图片显示的位置摆放。2)代码closeall;clearall;I=imread('pout.tif');figure,subplot(2,2,1),imshow(I),title('before');J=imadjust(I,stretchlim(I),[]);subplot(2,2,2),imshow(J),title('after');[mn]=size(I);subplot(2,2,3),imhist(I),title('line1');subplot(2,2,4)
3、,imhist(J),title('line2');3)结果4)结果分析从变化前图像到变化后图像以及直方图的线性分布可以看出灰度值的变化。任务2(1)思路使用imread函数读入图像后,这一任务是要将图像直方图均衡化,所以使用直方图均衡化函数histeq对图像进行处理。为了更直观的看到变化,使用imhist函数计算直方图并将其显示出来。(2)代码closeall;clearall;I=imread('pout.tif');figure,subplot(2,2,1),imshow(I),title('before');m=histeq(I);subplot(2,2,2),
4、imshow(m),title('after');subplot(2,2,3),imhist(I),title('line3');subplot(2,2,4),imhist(m),title('line4');(1)结果(2)结果分析直方图均衡化之后,线性分布得更加均匀。而且对比度,亮度等都有了很好的调整,图片更清楚了。任务31)思路用imread函数读入图片后,因为本任务是均值滤波图片,所以先用fspecial函数定义一个滤波器后,用imfilter函数对图形进行均值滤波。最后用figure函数将图像显示。2)代码closeall;clearall;I=imread(
5、'pout.tif');figure,subplot(1,2,1),imshow(I),title('before');h=fspecial('motion',12,10);K=imfilter(I,h);subplot(1,2,2),imshow(K),title('after');3)结果4)结果分析均值滤波之后,感觉色款更加接近了,图片却变得模糊了。任务4(1)思路用imread函数读入图片,本任务是对图片进行中值滤波,所以用中值滤波函数medfilt2对图片进行处理。最后将图片用figure函数显示出来。(1)代码closeall;clearall;I=imre
6、ad('pout.tif');figure,subplot(1,2,1),imshow(I),title('before');K=medfilt2(I);subplot(1,2,2),imshow(K),title('after');(2)结果(3)结果分析经过中值滤波处理过的图片感觉噪点少了,更加平滑了。任务5(1)思路用imread函数读入图片,因为本任务是对图片进行拉普拉斯滤波操作,所以先用fspecial函数定义一个滤波器,再用imfilter函数函数将replicate图像的外边界的值赋给a1,使其边缘增强。最后将用minus函数锐化后的值赋给a,并将其赋给图
7、像,将其显示出来。(2)代码closeall;clearall;I=imread('pout.tif');figure,subplot(1,3,1),imshow(I),title('before');H=fspecial('laplacian',0);a1=imfilter(I,H,'replicate');subplot(1,3,2),imshow(a1),title('replicate');f2=im2double(I);a1=im2double(a1);a=minus(f2,a1);subplot(1,3,3),imshow(a