资源描述:
《数字图像处理——图像增强.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机科学与通信工程学院实验报告课程图像处理实验题目图像增强学生姓名1.引言图像增强不考虑图像降质的原因,只是将图像中感兴趣的特征有选择的突出而衰减其不需要的特征,改善后的图像不一定去逼近原图;其目的是提高图像的可懂度。2.基本知识需要掌握matlab函数的基本使用方式。此外,图像点处理操作关键在于设计合适的映射函数。映射函数的设计有两类方法,一类是根据图像特点和处理工作需求,人为设计映射函数;另一类是设计方法是从改变图像整体的灰度分布出发,设计一种映射函数,使变换后图像灰度直方图达到或接近预定的形状。
2、3.功能分析及设计在matlab环境中,程序首先读取图像,然后调用直方图均衡化函数,设置相关参数,再输出处理后的图像。采用如下程序对图像进行反转,结果如图2所示:Img1=imread('F:lena.jpg');figure,imshow(img1);title('originalimage');img2=imcomplement(img1);figure,imshow(img2);title('negativeimage');对灰度图像Lena.bmp进行均衡化,灰度等级8级结果如图3所示。I=i
3、mread('F:lena.jpg');K=16;H=histeq(I,K);figure,subplot(2,2,1),imshow(I,[])subplot(2,2,2),imshow(H,[]),holdonsubplot(2,2,3),hist(double(I),16),subplot(2,2,4),hist(double(H),10)对图像进行平滑,结果参见图4,5,6。img=rgb2gray(imread('F:lena.jpg'));figure;imshow(img);img_n
4、oise=double(imnoise(img,'salt&pepper',0.06));figure,imshow(img_noise,[]);img_smoothed=imfilter(img_noise,fspecial('average',5));figure;imshow(img_smoothed,[]);采用Butterworth低通滤波器对Lena图像进行低通滤波,结果参见图7。可以看到,滤波后图像变模糊了。clc;clear;J1=imread('F:lena.jpg');subplo
5、t(3,2,1);imshow(J1);title('原图');f=double(J1);g=fft2(f);%傅立叶变换g=fftshift(g);%转换数据矩阵subplot(3,2,2);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(g));%取幅度mesh(z);%以三维坐标显示该图像频谱图title('原图频谱');[M,N]=size(g);nn=2;%二阶巴特沃斯(Butterworth)低通滤波器d0=20;m=fix(M/2);n=
6、fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);endendsubplot(3,2,4);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(result));%取幅度mesh(z);%以三维坐标显示该图像频谱图title('低通滤波后的频谱');result=ifftshift(res
7、ult);J2=ifft2(result);J3=uint8(abs(J2));subplot(3,2,3);imshow(J3);title('低通滤波后的图像');采用巴特沃斯高通滤波器对Lena图进行锐化,其结果参见8。nn=2;%二阶巴特沃斯(Butterworth)高通滤波器d0=5;m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;elseh=1/(1+0.414*(d0/d)^(2*nn));
8、%计算传递函数endresult(i,j)=h*g(i,j);endendsubplot(3,2,6);x=0:1:255;y=0:1:255;[x,y]=meshgrid(x,y);z=log(abs(result));%取幅度mesh(z);%以三维坐标显示该图像频谱图title('高通滤波后的频谱');result=ifftshift(result);J2=ifft2(result);J3=uint8(abs(J2));subplot