当前位置:文档之家› 研究生数字图像处理作业

研究生数字图像处理作业

一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。

频域降噪。

对图像而言,噪声一般分布在高频区域,而图像真是信息主要集中在低频区,所以,图像降噪一般是利用低通滤波的方法来降噪。

边缘增强。

图像的边缘信息属于细节信息,主要由图像的高频部分决定,所以,边缘增强一般采取高通滤波,分离出高频部分后,再和原频谱进行融合操作,达到边缘增强,改善视觉效果,或者为进一步处理奠定基础的目的。

1频域降噪,主程序如下:I=imread('lena.bmp'); %读入原图像文件J=imnoise(I,'gaussian',0,0.02);%加入高斯白噪声A=ilpf(J,0.4);%理想低通滤波figure,subplot(222);imshow(J);title('加噪声后的图像');subplot(222);imshow(A);title('理想低通滤波');B=blpf(J,0.4,4);%巴特沃斯低通滤波subplot(223);imshow(B);title('巴特沃斯低通滤波');C=glpf(J,0.4);%高斯低通滤波subplot(224);imshow(C);title('高斯低通滤波');用到的滤波器函数的程序代码如下:function O=ilpf(J,p) %理想低通滤波,p是截止频率[f1,f2]=freqspace(size(J),'meshgrid');hd=ones(size(J));r=sqrt(f1.^2+f2.^2);hd(r>p)=0;y=fft2(double(J));y=fftshift(y);ya=y.*hd;ya=ifftshift(ya);ia=ifft2(ya);O=uint8(real(ia));function O=blpf(J,d,n) %巴特沃斯低通滤波器,d是截止频率,n是阶数[f1,f2]=freqspace(size(J),'meshgrid');hd=ones(size(J));r=f1.^2+f2.^2;for i=1:size(J,1)for j=1:size(J,2)t=r(i,j)/(d*d);hd(i,j)=1/(t^n+1);endendy=fft2(double(J));y=fftshift(y);ya=y.*hd;ya=ifftshift(ya);ia=ifft2(ya);O=uint8(real(ia));function O=glpf(J,D) %高斯滤波器,D是截止频率[f1,f2]=freqspace(size(J),'meshgrid');r=f1.^2+f2.^2;Hd=ones(size(J));for i=1:size(J,1)for j=1:size(J,2)t=r(i,j)/(D*D);Hd(i,j)=exp(-t);endendY=fft2(double(J));Y=fftshift(Y);Ya=Y.*Hd;Ya=ifftshift(Ya);ia=ifft2(Ya);O=uint8(real(ia));运行结果如图1所示。

从结果可以看出,三种滤波器都可以对图像进行降噪,经滤波器滤波后,图像更噪声部分得到抑制,但是细节部分变得模糊。

这是因为,细节信息分布在高频部分,降噪会对图像起到平滑作用,细节部分减弱。

2 边缘增强,程序如下:J=imread('moon.tif');figuresubplot(121),imshow(J);title('原始图像');[f1,f2]=freqspace(size(J),'meshgrid');r=f1.^2+f2.^2;D=0.3;Hd=ones(size(J));for i=1:size(J,1)for j=1:size(J,2)t=r(i,j)/(D*D);Hd(i,j)=1-exp(-t); %高斯高通滤波endendY=fft2(double(J));Y=fftshift(Y);Ya=Y.*Hd; %高斯高通滤波%Ya=ifftshift(Ya);ia=Y+1.4*Ya; %原始图像频谱加上1.4倍的高频频谱Ya=ifftshift(ia);ia=ifft2(Ya);O=uint8(real(ia));subplot(122),imshow(O);title('边缘增强后的图像');运行结果如下图示:边缘增强采用高斯高通滤波器将高频频谱过滤出来然后乘以 1.4倍以后与原图像频谱详加,然后对所得频谱进行反变换得到增强后的图像。

也可以采用其他滤波器,比如巴特沃斯滤波器或者理想高通滤波器等。

从结果可以看出高频加强后图像细节增强,边缘部分更容易分辨。

二、编写程序完成不同锐化方法的图像锐化的算法并进行比较,得出结论。

图像锐化可以分为空域和频域锐化两大类,在此着重讨论空域。

频域锐化可以参考上题中边缘增强部分。

1.拉普拉斯变换锐化。

f=imread('lena.bmp');w=fspecial('laplacian',0);%生成模版f2=im2double(f);g2=imfilter(f2,w,'replicate');g=f2-g2;g1=1.3*f2-g2;%高频提升figure,subplot(131);imshow(f);title('原始图片');subplot(132);imshow(g);title('标准拉普拉斯锐化');subplot(133);imshow(g1);title('高频提升锐化');运行结果如下图所示:2.梯度算子锐化。

程序如下:f=imread('coins.png');h1=fspecial('prewitt');h2=fspecial('sobel');h3=fspecial('log');f2=im2double(f);g1=imfilter(f2,h1,'replicate');g2=imfilter(f2,h2,'replicate');g3=imfilter(f2,h3,'replicate');figure,subplot(221);imshow(f);title('原始图片');subplot(222);imshow(g1);title('prewitt算子梯度锐化');subplot(223);imshow(g2);title('sobel算子梯度锐化');subplot(224);imshow(g2);title('log算子梯度锐化');运行结果如下如所示:从运行结果可以看出,拉普拉斯变换锐化效果明显,高频提升后边缘信息更加清晰,但是也同时可以看出,拉普拉斯锐化会产生很多噪声。

相比较一下,梯度算子没有引入噪声,边缘信息明显,很适合计算机自动检测和识别。

三、编写程序完成同态滤波的算法,得出结论。

同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。

同态滤波的maitlab实现如下:clear;img0 = imread('tun.jpg');%img0=rgb2gray(I);%彩色图像转化为灰度图像[M,N]=size(img0);img=double(img0);img = log(1+img); %取对数img = fft2(img); %傅立叶变换img = fftshift(img); %将频域原点移到图像中心for i=1:Mfor j=1:ND(i,j)=sqrt(((i-floor(M/2))^2+(j-floor(N/2))^2));%求距离endendc=4; %锐化参数,可调Do=150 ; %一般是方差 (滤波器的高通截止频率)H=(2.0-0.5)*(1-exp(-c*(D.^2/(Do^2))))+0.5; %滤波器函数whos;himg=img.*H;himg=ifftshift(himg);gimg=ifft2(himg); %逆傅立叶变换gimg=exp(gimg); %取指数G=real(gimg);img=G;img_min=min(img(:));img_max=max(img(:));img=(img-img_min)/(img_max-img_min);img=imadjust(img,[0 1],[0 1],0.3);w1=fspecial('gaussian',[5,5],2.3);img_new=imfilter(img,w1); %高斯滤波J=histeq(img_new);%直方图均衡化处理im2=histeq(img);figure,subplot(121),imshow(img0);title('原始图像');%显示原始图像subplot(122); imshow(J);title('同态滤波后的图像'); %滤波处理过的图像运行结果如下图示:程序中为了得到更好的视觉效果,同态滤波后,有进行了空域高斯滤波和直方图均衡化处理。

通过运行结果我们可以看出,经同态滤波后,图像中原本很暗的岩壁更加清晰,图像的亮度范围减小,对比对增强,细节信息增强,视觉效果更好。

四、编写程序完成不同分割方法的图像分割的算法并进行比较,得出结论。

图像分割是图像处理的重要领域,是计算机进一步处理的基础。

笔者完成了两个比较有代表性的图像分割算法,一个是基于灰度的阈值分割,一个是基于边缘信息的分割,分水岭算法进行的图像分割。

1. Otsu法阈值分割图像clear allI=imread('coins.png');subplot(1,2,1),imshow(I);title('原始图像')level=graythresh(I); %确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu法阈值分割图像');运行结果如下图示:从运行结果可以看出,Otsu法阈值分割图像对于前景目标和背景灰度差别较大、目标灰度范围较小,的情况下可以实现较为理想的分割。

相关主题