数字图像处理Word文档格式.docx
《数字图像处理Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
1、打开计算机,启动MATLAB程序;
程序组中“work”文件夹中应有待处理的
图像文件。
2、调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3、显示原图像的直方图和经过均衡化处理过的图像直方图。
4、记录和整理实验报告
四、实验仪器
1、计算机;
2、MATLAB程序;
3、移动式存储器(软盘、U盘等)。
4、记录用的笔、纸。
五、实验报告内容
1、实验所选取的的图像:
图一原图像
2、Matlab处理的程序:
I=imread('
pollen.jpg'
);
I=rgb2gray(I);
J=adapthisteq(I);
subplot(2,2,1),imshow(I)
title('
原图'
subplot(2,2,2),imshow(J)
直方图均衡化后的结果'
)
subplot(2,2,3),imhist(I,64)
原图的直方图'
subplot(2,2,4),imhist(J,64)
直方图均衡化后的结果的直方图'
3、Matlab最后处理的结果:
图二处理后的图像
实验二图像增强—空域滤波
进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学
生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并
为课堂教学提供配套的实践机会。
二、实验要求
1、学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同
强度的高斯噪声和椒盐噪声,进行滤波处理;
能够正确地评价处理的结果;
能够
从理论上作出合理的解释。
2利用MATLAB软件实现空域滤波。
三、实验设备与软件
1、IBM-PC计算机系统
2、MatLab软件/语言包括图像处理工具箱(ImageProcessingToolbox)
3、实验所需要的图片
四、实验内容与步骤
1、调入并显示原始图像
图一原始图像
2、利用imnoise命令在图像上加入高斯(gaussian)噪声。
3、利用预定义函数fspecial命令产生平均(average)滤波器。
4、采用3x3的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图。
像进行处理并观察不同噪声水平下,上述滤波器处理的结果。
5、选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,
观察上述滤波器处理的结果。
6、利用imnoise命令在图像上加入椒盐噪声(salt&
pepper)。
7、重复c)~e)的步骤。
8、输出全部结果并进行讨论。
五、实验结果
1、Matlab实验程序
QQ.tif'
J=imnoise(I,'
gauss'
0.02);
%添加高斯噪声
%J=imnoise(I,'
salt&
pepper'
%添加椒盐噪声
ave1=fspecial('
average'
3);
%产生3×
3的均值模版
ave2=fspecial('
5);
%产生5×
5的均值模版
K=filter2(ave1,J)/255;
%均值滤波3×
3
L=filter2(ave2,J)/255;
%均值滤波5×
5
M=medfilt2(J,[33]);
%中值滤波3×
3模板
N=medfilt2(J,[44]);
%中值滤波4×
4模板
imshow(I);
figure,imshow(J);
figure,imshow(K);
figure,imshow(L);
figure,imshow(M);
figure,imshow(N);
2、实验的最后结果
图二运行结果
实验三图像增强—频域滤波
一、实验目的
1、掌握怎样利用傅立叶变换进行频域滤波
2、掌握频域滤波的概念及方法
3、熟练掌握频域空间的各类滤波器
4、利用MATLAB程序进行频域滤波
二、实验原理及知识点
频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波
器。
频域低通过滤的基本思想:
G(u,v)=F(u,v)H(u,v)
F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,
G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的
图像。
理想地通滤波器(ILPF)具有传递函数:
其中,D0为指定的非负数,D(u,v)为(u,v)到滤波器的中心的距离。
0D(u,v)D的点的
轨迹为一个圆。
n阶巴特沃兹低通滤波器(BLPF)(在距离原点0D处出现截至频率)的传递函数为
DuvDn
Huv2
01[(,)]
(,)1
与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在0D处突然不连续。
高斯低通滤波器(GLPF)的传递函数为
H(u,v)eD2(u,v)22
其中,为标准差。
相应的高通滤波器也包括:
理想高通滤波器、n阶巴特沃兹高通滤波器、高斯高通滤
波器。
给定一个低通滤波器的传递函数H(u,v)lp,通过使用如下的简单关系,可以获得相
应高通滤波器的传递函数:
H1H(u,v)hplp
利用MATLAB实现频域滤波的程序
f=imread('
room.tif'
0(,)
1(,)
(,)
ifDuvD
Huv
F=fft2(f);
%对图像进行傅立叶变换
S=fftshift(log(1+abs(F)));
%对变换后图像进行队数变化,并对其坐标平移,使其中心化
S=gscale(S);
%将频谱图像标度在0-256的范围内
imshow(S)%显示频谱图像
h=special('
sobel'
%产生空间‘sobel’模版
freqz2(h)%查看相应频域滤波器的图像
PQ=paddedsize(size(f));
%产生滤波时所需大小的矩阵
H=freqz2(h,PQ
(1),PQ
(2));
%产生频域中的‘sobel’滤波器
H1=ifftshift(H);
%重排数据序列,使得原点位于频率矩阵的左上角
imshow(abs(H),[])%以图形形式显示滤波器
figure,imshow(abs(H1),[])
gs=imfilter(double(f),h);
%用模版h进行空域滤波
gf=dftfilt(f,H1);
%用滤波器对图像进行频域滤波
figure,imshow(gs,[])
figure,imshow(gf,[])
figure,imshow(abs(gs),[])
figure,imshow(abs(gf),[])
number.tif'
%读取图片
D0=0.05*PQ
(1);
%设定高斯高通滤波器的阈值
H=hpfilter('
gaussian'
PQ
(1),PQ
(2),D0);
%产生高斯高通滤波器
g=dftfilt(f,H);
%对图像进行滤波
figure,imshow(f)%显示原图像
figure,imshow(g,[])%显示滤波后图像
三、实验步骤:
1调入并显示所需的图片;
2利用MATLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤
波进行比较。
3利用MATLAB提供的高通滤波器对图像进行处理。
4记录和整理实验报告。
四、实验仪器
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验报告内容
1叙述实验过程;
2提交实验的原始图像和结果图像。
实验报告要求
六、描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进
行必要的讨论,必须包括原始图像及其计算/处理后的图像。
七、思考题
1结合实验,评价频域滤波有哪些优点?
2在频域滤波过程中需要注意哪些事项?
八、实验图片
room.tifnumber.tif
实验四图像边缘检测和处理
1.掌握几种常用边缘检测算子的程序设计;
2.使学生掌握各种边缘检测算子的特征;
3.掌握Hough变换的算法本质和程序设计技巧。
4.掌握域值处理方法
5.掌握区域分割方法和思想
二、边缘检测处理函数
1.点、线、边的检测
1)点检测:
运用imfilter滤波器实现
方法一:
g=abs(imfilter(double(f),w))>
=T
例子:
f=imread('
dragfl.bmp'
w=[-1-1-1;
-18-1;
-1-1-1];
g=abs(imfilter(double(f),w));
T=max(g(:
));
g=g>
=T;
imshow(g)
方法二:
g=imsubtract(ordfilt2(f2,m*n,ones(m,n)),ordfilt2(f,1,ones(m,n)));
g=g>
g=imsubtract(ordfilt2(f,3*3,ones(3,2)),ordfilt2(f,1,ones(3,2)));
//两个图像进行减运
算
1)线检测:
运用模板进行检测
w=[2-1-1;
-12-1;
-1-12];
g=imfilter(double(f),w);
imshow(g,[])
gtop=g(1:
120,1:
120);
gtop=pixeldup(gtop,4);
figure,imshow(gtop,[])
gbot=g(end-119:
end,end-119:
end);
gbot=pixeldup(gbot,4);
figure,imshow(gbot,[])
g=abs(g);
figure,imshow(g,[])
g=g=>
=T;
figure,imshow(g)
2)边缘检测
方法:
[g,t]=edge(f,’method’,parameter);
[gv,t]=edge(f,'
'
vertical'
imshow(gv)
t
gv=edge(f,'
0.15,'
gboth=edge(f,'
sobel,o.15'
imshow(gboth)
w45=[-2-10;
-101;
012];
g45=imfilter(double(f),w45,'
replicate'
T=0.3*max(abs(g45(:
)));
g45=g45>
figure,imshow(g45)
2.运用哈夫变换检测边
1)哈夫变换函数:
[h,theta,rho]=hough[f,dtheta,drho]
h=hough(f);
imshow(h,[])
2)哈夫变换检测顶点函数:
[r,c,hnew]=houghpeaks(h,numpeaks,threshold,nhood)
3)哈夫变换检测直线函数:
lines=houghlines(f,theta,rho,rr,cc,fillgap,minlength);
[h,theta,rho]=hough(f,0.5);
imshow(theta,rho,h,[],'
notruesize'
),axison,axisnormal
xlabel('
\theta'
),ylabel('
\rho'
[r,c]=houghpeaks(h,5);
holdon
plot(theta(c),rho(r),'
linestyle'
none'
marker'
s'
color'
w'
lines=houghlines(f,theta,rho,r,c);
figure,imshow(f)
fork=1:
length(lines)
xy=[lines(k).point1;
lines(k).point2];
plot(xy(:
2),xy(:
1),'
LineWidth'
4,'
Color'
[.6.6.6]);
end
3.域值处理
1)全局域值处理函数:
t=graythresh(f)
T=0.5*(double(min(f(:
)))+double(max(f(:
))));
done=false;
while~done
g=f>
Tnext=0.5*(mean(f(g))+mean(f(~g)));
等价于:
t2=graythresh(f);
t2
t2=t2*255;
=t2;
4区域分割函数
1)区域增长函数:
[g,nr,si,ti]=regiongrow(f,s,t)<
自编函数>
例子:
[g,nr,si,ti]=regiongrow(f,73,100);
[g,nr,si,ti]=regiongrow(f,26,100);
nr
[g,nr,si,ti]=regiongrow(f,26,80);
1)分裂合并函数:
g=splitmerge(f,mindim,fun)<
I=imread('
g=splitmerge(I,32,@predicate);
g=splitmerge(I,16,@predicate);
g=splitmerge(I,8,@predicate);
g=splitmerge(I,4,@predicate);
g=splitmerge(I,2,@predicate);
三、实验内容和要求
1.编程实现Roberts边缘检测算子
2.编程实现Sober边缘检测算子;
3.编程实现Pirsch边缘算子;
4.编程实现两个不同的拉普拉斯算子;
__