当前位置:文档之家› 图像增强实验

图像增强实验

一、实验目的1掌握灰度直方图的概念及其计算方法;2熟练掌握直方图均衡化原理;3熟练掌握空域常用的平滑和锐化方法;4熟练掌握频域低通滤波、高通滤波原理;5利用MATLAB程序进行图像增强。

二、实验内容1、图像空域增强:1)采用直方图均衡化方法增强图像。

2)采用平滑算法去噪增强图像。

3)采用锐化算法增强图像。

2、图像频域增强1)频域低通滤波2)频域高通滤波三、实验步骤及结果1、图像空域增强:1)采用直方图均衡化方法增强图像。

选择2017.png为原始图像,使用直方图均衡化函数histeq处理图像,使其直方图分布更均匀。

代码清单:function junheng(im1)A=imread(im1);B=histeq(A);subplot(2,2,1);imshow(A);title('原始图像');%输出原始图像subplot(2,2,2);imhist(A);title('原始直方图');%输出原始直方图subplot(2,2,3);imshow(B);title('均衡化图像');%输出均衡化图像subplot(2,2,4);imhist(B);title('均衡化直方图');%输出均衡化直方图结果:图1 直方图均衡化2)采用平滑算法去噪增强图像。

选择lena.png为原始图像,使用imnoise函数模拟噪声的产生对原始图像叠加椒盐噪声,然后使用模板大小为3*3和7*7的中值滤波器medfilt2分别平滑加噪图像;再使用百分比滤波器ordfilt2,设计5*5大小的最大值、最小值滤波器分别平滑加噪图像。

代码清单:function pinghua(im2)A=imread(im2);B=imnoise(A);C=medfilt2(A);D=medfilt2(A,[7,7]);E=ordfilt2(A,1,ones(5,5));F=ordfilt2(A,9,ones(5,5));subplot(2,3,1);imshow(A);title('原始图像');%输出原始图像subplot(2,3,2);imshow(B);title('椒盐噪声图像');%输出加椒盐噪声图像subplot(2,3,3);imshow(C);title('3*3平滑加噪图像');%输出模板大小为3*3的中值滤波器加噪图像subplot(2,3,4);imshow(D);title('7*7平滑加噪图像');%输出模板大小为7*7的中值滤波器加噪图像subplot(2,3,5);imshow(E);title('最小值平滑加噪图像');%输出最小值滤波器平滑加噪图像subplot(2,3,6);imshow(E);title('最大值平滑加噪图像');%输出最大值滤波器平滑加噪图像结果:图2 平滑算法去噪3)采用锐化算法增强图像。

选择lena.png为原始图像,使用高斯函数模糊方法对原始图像进行高斯模糊,使用filter2滤波函数对图像锐化滤波,分别使用sobel、prewitt方法锐化图像。

代码清单:function ruihua(im)A=imread(im);guass=fspecial('gaussian',[179 179],10);%gauss函数B=imfilter(A,guass);C=edge(A,'sobel');D=edge(A,'prewitt');subplot(2,2,1);imshow(A);title('原始图像');%输出原始图像subplot(2,2,2);imshow(B);title('高斯模糊图像');%输出高斯模糊处理的图像subplot(2,2,3);imshow(C);title('sobel锐化图像');%输出sobel锐化图像subplot(2,2,4);imshow(D);title('prewitt锐化图像');%输出prewitt锐化图像结果:图3 锐化算法增强图像2、图像频域增强1)频域低通滤波选择barb.png为原始图像,读入图像数据,给出其频域变换结果图像,编写程序实现巴特沃斯低通滤波器H1,并用该滤波器实现对频域图像的滤波,再使用傅里叶逆变换函数(ifft2)给出滤波后图像。

代码清单:function dtlb(I)f=imread(I);subplot(2,2,1);imshow(f);title('原始图');%输出原始图像g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵subplot(2,2,2);imshow(log(1+abs(g)),[]);title('傅里叶频谱'); %输出傅里叶频域图%**************************butterworth低通滤波***************************[M,N]=size(g);nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器d0=10;m=floor(M/2); n=floor(N/2);for i=1:Mfor j=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(2,2,3);imshow(log(1+abs(result)),[]);title('butterworth低通滤波'); %显示butter worth低通滤波处理后的频域图result=ifftshift(result);J2=ifft2(result); %傅里叶反变换J3=uint8(real(J2));subplot(2,2,4),imshow(J3); % 显示滤波处理后的图像title('低通滤波图');结果:图4 频域低通滤波2)频域高通滤波选择barb.png为原始图像,读入图像数据,给出其频域变换结果图像,编写程序实现巴特沃斯高通滤波器H2,并用该滤波器实现对频域图像的滤波,再使用傅里叶逆变换函数(ifft2)给出滤波后图像。

代码清单:function gtlb(I)f=imread(I);subplot(2,2,1);imshow(I);title('原始图'); %显示原始图像g=fft2(f); % 傅立叶变换g=fftshift(g); % 转换数据矩阵subplot(2,2,2);imshow(log(1+abs(g)),[]);title('傅里叶频谱'); %显示傅里叶频谱图%************************butter worth高通滤波器*************************[M,N]=size(g);nn=2; % 二阶巴特沃斯(Butterworth)高通滤波器d0=10;m=floor(M/2); n=floor(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数result(i,j)=h*g(i,j);endendsubplot(2,2,3);imshow(log(1+abs(result)),[]);title('butterworth高通滤波'); %显示butter worth高通频谱图result=ifftshift(result);J2=ifft2(result); %傅里叶反变换J3=uint8(real(J2));subplot(2,2,4),imshow(J3); % 显示滤波处理后的图像title('高通滤波图');结果:图5 频域高通滤波四、实验总结直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。

通常用来增加图像的全局对比度,通过这种方法,亮度可以更好地在直方图上分布,这样就可以用于增强局部的对比度而不影响整体的对比度。

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。

中值滤波后有效的去除了椒盐噪声,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。

锐化的目的有两个:一是增强图像的边缘,使模糊的图像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。

二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。

通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像。

一阶的巴特沃斯滤波器没有振铃,在二阶中振铃通常很微小,这是因为与理想低通滤波器相比,它的通带与阻带之间没有明显的跳跃,在高低频率间的过渡比较光滑。

巴特沃斯低通滤波器的处理结果比理想滤波器的要好,但阶数增高时振铃便成为一个重要因素。

相关主题