MATLAB图像滤波实验报告.docx
《MATLAB图像滤波实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB图像滤波实验报告.docx(16页珍藏版)》请在冰点文库上搜索。
![MATLAB图像滤波实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-6/22/6edab018-8192-45ef-8980-0cd8c688872c/6edab018-8192-45ef-8980-0cd8c688872c1.gif)
MATLAB图像滤波实验报告
1
图像处理实验
实验报告
院(系)名称
专业名称
学生姓名
学号
任课老师
年月日
1实验目的
利用MATLAB实现图像滤波,边界检测,从空间域与频域上加深对图像滤波的理解。
2实验内容
1.对lena.bmp分别添加高斯、椒盐、泊松噪声,并比较高斯滤波与中值滤波的效果。
(使用matlab自带函数即可)
2.对lena.bmp实现laplace算子、Sobel算子、Kirch算子、Canny算子等边界检测算子中的任何两个;(不使用matlab自带函数)
3.通过观察rect.bmp和rect-45度.bmp的傅立叶频谱,了解图像傅立叶变换的旋转、平移等特性;
4.对grid.bmp实现理想低通;
5.对cave.jpg实现同态滤波算法,观察光照校正的效果(使用高斯型高通滤波器的离散化结果作为模板)。
3实验步骤及算法流程
4实验结果分析
4.1空间域滤波
图1加高斯噪声与滤波
图2密度为0.1的椒盐噪声与滤波
图3密度为0.5的椒盐噪声与滤波
图4加泊松噪声与滤波
高斯滤波是构造一个高斯卷积掩膜,对每一个点的邻域进行卷积达到滤波的效果,中值滤波是用邻域中像素的中值代替当前像素,是非线性的。
分析以上三幅图,知高斯滤波的效果对每种噪声差不多;中值滤波对椒盐噪声来说效果非常好,在椒盐密度不大的情况下几乎可以完全去除噪声。
以以上四幅图来说,中值滤波的效果要比高斯滤波的效果好。
4.2边界检测
图5Laplace算子检测边界
图6Sobel算子检测边界
4.3频域转换
图7旋转前的频域(经fftshift处理)
图8旋转45°后的频域(经fftshift处理)
经上图可知,当图像旋转45°后,相应的频域也旋转45°。
4.4频域低通滤波
图9原始图像grid.bmp的频域(经fftshift处理)
中心尖峰的两侧出现两个次尖峰,对应正弦噪声的频率,需将其滤掉。
图10处理后的频域
进行频域的处理后,空间域上的图像如下所示:
图11对grid.bmp低通滤波
4.5同态滤波
图12原始图像cave.jpg
选择合适的高通滤波器进行同态滤波的效果如下:
图13同态滤波后的图像
5思考题
1.依次给出“高斯平滑滤波器、中值滤波器、laplace滤波器”是线性还是非线性的。
只有中值滤波为非线性。
2.简述Laplace算子产生双重响应的原因。
因为有些边缘在用Laplace检测时起始处和终点两处出现非零值。
(这一点不确定)
3.如何实现彩色图像的边缘检测?
可用多通道分别检测然后综合。
4.傅里叶变换有哪些重要的性质,讨论图像的边缘与频率的关系?
(1)线性性质
(2)位移性质
(3)微分性质
(4)积分性质
(5)卷积定理:
空间域的卷积对应频域的乘积,空间域的乘积对应时域的卷积;
(6)旋转特性:
空间域旋转某一角度,频域跟着旋转相同的角度。
图像的边缘处频率很大。
6总结:
收获及感想
通过此次实验,掌握了图像滤波的一些基本算法并能利用MATLAB简单地实现;加深了对图像空间域与频域之间的对应关系的理解。
7附录(程序主要代码)
加椒盐噪声与滤波:
(部分代码)
im=imread('lena.bmp');
im=im2double(im);
outsalt=imnoise(im,'salt&pepper',0.5);
hsize=10;
sigma=5;
h=fspecial('gaussian',hsize,sigma);
imagesc(h);
fgauss=imfilter(outsalt,h);
outmed=medfilt2(outsalt,[3,3]);
Laplace检测边缘:
(部分代码,以下同)
fori=2:
x-1
forj=2:
y-1imlaplace(i,j)=im(i-1,j-1)+im(i-1,j)+im(i-1,j+1)+im(i,j-1)-8*im(i,j)+im(i,j+1)+im(i+1,j-1)+im(i+1,j)+im(i+1,j+1);
if(imlaplace(i,j)<0)
imlaplace(i,j)=0;
elseif(imlaplace(i,j)>1)
imlaplace(i,j)=1;
end
imlaplace(i,j)=1-imlaplace(i,j);
end
end
Sobel检测边缘:
fori=2:
x-1
forj=2:
y-1xx=im(i-1,j-1)+2*im(i-1,j)+im(i-1,j+1)-im(i+1,j-1)-2*im(i+1,j)-im(i+1,j+1);yy=-im(i-1,j-1)-2*im(i,j-1)-im(i+1,j-1)+im(i-1,j+1)+2*im(i,j+1)+im(i+1,j+1);
imsobel(i,j)=power(xx*xx+yy*yy,0.5);
if(imsobel(i,j)<0)
imsobel(i,j)=0;
elseif(imsobel(i,j)>1)
imsobel(i,j)=1;
end
imsobel(i,j)=1-imsobel(i,j);
end
end
傅里叶变换的旋转、平移特性:
im=imread('rect.bmp');
im=im2double(im);
imft=fft2(im);
imft=fftshift(imft);
imb=imread('rect-45¶È.bmp');
imb=im2double(imb);
imbft=fft2(imb);
imbft=fftshift(imbft);
subplot(222);
surfl(abs(imft));
shadinginterp;
colormapcopper;
title('rectfouriertransform');
grid.bmp低通滤波:
im=imread('grid.bmp');
im=im2double(im);
imft=fft2(im);
imfts=fftshift(imft);
[x,y,flag]=size(imfts);
fori=x/2-3:
x/2+5
forj=y/2-13:
y/2-3
imfts(i,j)=0;
end
end
fori=x/2-3:
x/2+5
forj=y/2+5:
y/2+15
imfts(i,j)=0;
end
end
imftv=ifftshift(imfts);
imfilter=abs(ifft2(imftv));
cave.jpg同态滤波:
im=imread('cave.jpg');
im=im2double(im)+1;%确保大于0
imlog=log(im);
imlogf=fft2(imlog);
imlogf=fftshift(imlogf);
[x,y]=size(imlogf);%。
。
。
。
。
。
。
。
。
。
。
。
。
hsize=[x,y];
sigma=5;
h=fspecial('gaussian',hsize,sigma);
b=1/max(max(h));
h=b*h/4;
h=1-h;%。
。
。
。
。
。
。
。
。
构造高通滤波器
imlogf=imlogf.*h;
imfilf=ifftshift(imlogf);
imfil=ifft2(imfilf);
imfilter=abs(exp(imfil))-1;%之前加1,现在减1
subplot(121);
imshow(im-1);
title('原始图像');
subplot(122);
imshow(imfilter);
title('同态滤波后的图像');
THANKS
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考