数字图像处理.docx
- 文档编号:3791538
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:14
- 大小:160.18KB
数字图像处理.docx
《数字图像处理.docx》由会员分享,可在线阅读,更多相关《数字图像处理.docx(14页珍藏版)》请在冰豆网上搜索。
数字图像处理
实验一图像增强—直方图变换
一、实验目的
1、掌握灰度直方图的概念及其计算方法。
2、熟练掌握直力图均衡化和直方图规定化的计算过程。
3、熟练掌握空域滤波中常用的平滑和锐化滤波器。
4、掌握色彩直方图的概念和计算方法。
5、利用MATLAB程序进行图像增强。
二、实验原理
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除
某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比
原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、
图像尖锐化处理和彩色处理技术等。
本实验以直方图均衡化增强图像对比度的方
法为主要内容,其他方法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是
非常有用的,如图像压缩与分割。
直方图在软件中易于计算,也适用于商用硬件
设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善
图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最
广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所
有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过
图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即
在每个灰度级上都具有相同的象素点数的过程。
处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。
从处
理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理
后所得到的图像中都变得十分清晰。
三、实验步骤
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)
title('直方图均衡化后的结果')
subplot(2,2,3),imhist(I,64)
title('原图的直方图');
subplot(2,2,4),imhist(J,64)
title('直方图均衡化后的结果的直方图');
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实验程序
I=imread('QQ.tif');
I=rgb2gray(I);
J=imnoise(I,'gauss',0.02);%添加高斯噪声
%J=imnoise(I,'salt&pepper',0.02);%添加椒盐噪声
ave1=fspecial('average',3);%产生3×3的均值模版
ave2=fspecial('average',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
0
0(,)
1(,)
(,)
ifDuvD
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),[])
f=imread('number.tif');%读取图片
PQ=paddedsize(size(f));%产生滤波时所需大小的矩阵
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>=T;
例子:
f=imread('dragfl.bmp');
g=imsubtract(ordfilt2(f,3*3,ones(3,2)),ordfilt2(f,1,ones(3,2)));//两个图像进行减运
算
T=max(g(:
));
g=g>=T;
imshow(g)
1)线检测:
运用模板进行检测
例子:
f=imread('dragfl.bmp');
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,[])
T=max(g(:
));
g=g=>=T;
figure,imshow(g)
2)边缘检测
方法:
[g,t]=edge(f,’method’,parameter);
例子:
f=imread('dragfl.bmp');
[gv,t]=edge(f,'sobel','vertical');
imshow(gv)
t
gv=edge(f,'sobel',0.15,'vertical');
imshow(gv)
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>=T;
figure,imshow(g45)
2.运用哈夫变换检测边
1)哈夫变换函数:
[h,theta,rho]=hough[f,dtheta,drho]
例子:
f=imread('dragfl.bmp');
h=hough(f);
imshow(h,[])
2)哈夫变换检测顶点函数:
[r,c,hnew]=houghpeaks(h,numpeaks,threshold,nhood)
3)哈夫变换检测直线函数:
lines=houghlines(f,theta,rho,rr,cc,fillgap,minlength);
例子:
f=imread('dragfl.bmp');
[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)
holdon
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)
例子:
f=imread('dragfl.bmp');
T=0.5*(double(min(f(:
)))+double(max(f(:
))));
done=false;
done=false;
while~done
g=f>=T;
Tnext=0.5*(mean(f(g))+mean(f(~g)));
end
imshow(g)
等价于:
t2=graythresh(f);
t2
t2=t2*255;
t2
g=f>=t2;
imshow(g)
4区域分割函数
1)区域增长函数:
[g,nr,si,ti]=regiongrow(f,s,t)<自编函数>
例子:
f=imread('dragfl.bmp');
[g,nr,si,ti]=regiongrow(f,73,100);
imshow(g)
[g,nr,si,ti]=regiongrow(f,26,100);
imshow(g)
nr
imshow(g)
[g,nr,si,ti]=regiongrow(f,26,80);
imshow(g)
1)分裂合并函数:
g=splitmerge(f,mindim,fun)<自编函数>
例子:
I=imread('pollen.jpg');
g=splitmerge(I,32,@predicate);
imshow(g)
imshow(g,[])
g=splitmerge(I,16,@predicate);
imshow(g)
g=splitmerge(I,8,@predicate);
imshow(g)
g=splitmerge(I,4,@predicate);
imshow(g)
g=splitmerge(I,2,@predicate);
imshow(g)
三、实验内容和要求
1.编程实现Roberts边缘检测算子
2.编程实现Sober边缘检测算子;
3.编程实现Pirsch边缘算子;
4.编程实现两个不同的拉普拉斯算子;__
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)