图像锐化处理报告.docx
- 文档编号:6797901
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:10
- 大小:433.21KB
图像锐化处理报告.docx
《图像锐化处理报告.docx》由会员分享,可在线阅读,更多相关《图像锐化处理报告.docx(10页珍藏版)》请在冰豆网上搜索。
图像锐化处理报告
学院
信息科学与工程
专业
电子信息工程
学生姓名
张楠楠
学号
G6*******5
设计题目
图像的锐化处理
内容及要求:
利用MATLAB进行编程和仿真,仿真的内容为图像的锐化处理,可以采用微分算子、拉普拉斯算子、Canny算子等实现。
对设计结果进行理解和分析。
进度安排:
2009年06月15日选题目查阅资料
2009年06月16日编写软件源程序或建立仿真模块图
2009年06月17日-18日调试程序或仿真模型
2009年06月19日性能分析及验收
2009年06月20日-21日撰写课程设计报告、答辩
指导教师(签字):
年月日
学院院长(签字):
年月日
课程设计任务书
目录
1课程设计目的…………………………………………………………1
2课程设计要求…………………………………………………………1
3相关知识………………………………………………………………1
4课程设计分析…………………………………………………………2
5程序代码………………………………………………………………5
6运行结果………………………………………………………………7
7参考文献………………………………………………………………8
图像的锐化处理
1.课程设计目的
(1)加深对图像的锐化处理基本理论知识的理解。
(2)培养独立开展科研的能力和编程能力。
(3)掌握基本图像锐化处理的过程及其应用。
2.课程设计要求
(1)掌握课程设计的相关知识、概念清晰。
(2)程序设计合理、能够正确运行。
3.相关知识
图像处理并不仅限于对图像进行增强、复原和编码,还要对同乡进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。
描述一般针对图像或景物中的特定区域或目标。
为了描述,首先要进行分割。
边缘检测是图像分析中的重要内容。
边缘是图像的最基本特征。
所谓边缘,是指周围像素灰度有阶跃变化货屋顶变化的那些像素的集合。
边缘广泛存在于物体于背景之间、物体与物体之间、基元与基元之间,因此它也是图像分割所依赖的重要特征。
两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的表现。
常见的边缘点有:
①阶梯形边缘(Step-edge),即从一个灰度到比它高(或低)好多的另一个灰度;②屋顶形边缘(Roof-edge),它的灰度是慢慢增加(减少)到一定程度然后慢慢减小(增加);③线形边缘(Line-edge),它的灰度线性变化中出现灰度脉冲。
边缘特点如图所示。
由于边缘是图像上灰度变化最剧烈的地方,传统的边缘检测就是利用了这一特点,对图像各个像素点进行微分或求二阶微分来确定边缘像素点。
一阶微分图像的峰值处对应着图像的边缘点。
根据数字图像的特点,处理图像过程中常采用差分来代替导数运算,对于图像的简单一阶导数运算,由于具有固定的方向性,只能检测特定方向的边缘,所以不具有普遍性。
为了克服一阶导数的缺点,我们定义图像的梯度算子为:
这是图像处理中最常用的一阶微分算法,式子中的F(j,k)表示图像的灰度值,图像梯度的最重要的性质是梯度的方向在图像灰度的最大变化率上,这恰好可以反映出图像边缘上的灰度变化。
图像边缘提取的常用梯度算子有Robert算子、Sobel算子、Prewitt算子、拉普拉斯算子等。
4.课程设计分析
4.1微分算子
对于数字图像而言,可用差分近似表示式,如下:
为了便于编程和提高运算速度,在一般的应用条件下,上式可以简化为:
相对的一阶差分为:
Robert算子的表达式为:
这里,G[j,k]表示处理后(j,k)点的灰度值,F(j,k)表示处理前该点的灰度值。
其实Robert算子的表达式可以有两种情况(一般以(b)为准),如图所示
所对应的模板为:
Sobel算子的表达式为:
所对应的模板为:
Prewitt算子所对应的模板为:
MATLAB图像处理工具箱中,edge函数实现边缘检测的功能,下面分别介绍其调用格式。
对于Robert算子:
BW=edge(I,‘roberts’)用Robert算子自动选择阈值进行边缘检测。
BW=edge(I,‘roberts’,thresh)根据制定的敏感阈值thresh,用Robert算子进行边缘检测,edge函数忽略了所有小于阈值的边缘。
如果没有指定阈值thresh或为[],函数自动选择参量值。
[BW,thresh]=edge(I,‘roberts’,…)返回阈值thresh和边缘检测图像BW。
对于Sobel算子:
BW=edge(I,‘sobel’)用Sobel算子自动选择阈值进行边缘检测。
BW=edge(I,‘sobel’,thresh)根据指定的敏感阈值thresh用Sobel算子进行边缘检测,edge函数忽略了所有小于阈值的边缘,如果没有指定阈值thresh或为[],函数自动选择参数量
BW=edge(I,‘sobel’,thresh,direction)指定Sobel算子边缘检测方向。
参量direction的值为水平方向‘horizontal’、垂直方向‘vertical’或二者都是‘both’(缺省)。
[BW,thresh]=edge(I,‘sobel’,…)返回阈值thresh和边缘检测图像BW。
对于Prewitt算子:
该算子edge函数的调用格式和Sobel算子一致。
4.2Log算子
拉普拉斯算子是一种二阶边缘检测算子,它是一个线性的、移不变的算子。
定义为:
图像经过二阶微分之后,在边缘出产生一个陡峭的零交叉,根据这个零交叉判断边缘。
拉普拉斯算子一般采用的模板为:
由于图像边缘处的一阶微分的极值点,图像边缘处的二阶微分应为零,确定零点的位置要比确定极值点容易得多,也比较精确。
但二阶微分对噪声更为敏感。
因此,在通常情况下,在对图像进行拉普拉斯算子边缘处理前,先对图像进行平滑滤波器处理,一般采用的是高斯滤波器。
把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测的方法叫做高斯拉普拉斯算子(简称Log算子)。
常用的Log算子是5×5的模块,如图所示。
在Log算子中,对边缘判断采用的技术是零交叉检测,把零交叉检测推广一下,我们只要在检测前用指定的滤波器对图像进行滤波,然后再寻找零交叉点作为边缘。
对于Log算子,edge函数的调用格式为:
BW=edge(I,‘log’)用Log算子自动选择阈值进行边缘检测。
BW=edge(I,‘log’,thresh)根据制定的敏感阈值thresh,用log算子进行边缘检测,edge函数忽略了所有小于阈值的边缘。
如果没有指定阈值thresh或为[],函数自动选择参量值。
BW=edge(I,‘log’,thresh,sigma)用参量sigma指定Log滤波器标准偏差,sigma的缺省值为2,滤波器的大小为n×n,这里n=cell(sigma*3)*2+1.
[BW,threshold]=edge(I,‘log’,…)返回阈值thresh和边缘检测图像BW。
零交叉检测:
BW=edge(I,‘zerocross’,thresh,h)用滤波器h指定零交叉检测法。
参量thresh为敏感阈值。
如果没有指定阈值thresh或为[],函数自动选择参量值。
[BW,thresh]=edge(I,‘zerocross’,…)返回阈值thresh和边缘检测图像BW。
5.程序代码
一.微分算子代码
I=imread('rice.png');
BW1=edge(I,'roberts');
%以自动阈值选择法对图像进行Roberts算子检测
[BW1,thresh1]=edge(I,'roberts');
%返回当前Roberts算子边缘检测的阈值
disp('Roberts算子自动选择的阈值为:
')
disp(thresh1)
subplot(121),imshow(BW1);
title('自动阈值的Roberts算子边缘检测')
BW1=edge(I,'roberts',0.05);
%以阈值为0.05对图像进行Roberts算子检测
subplot(122),imshow(BW1);
title('阈值为0.05的Roberts算子边缘检测')
BW2=edge(I,'sobel');
%以自动阈值选择法对图像进行Sobel算子检测
figure,subplot(131),imshow(BW2);
title('自动阈值的Sobel算子边缘检测')
[BW2,thresh2]=edge(I,'sobel');
%返回当前Sobel算子边缘检测的阈值
disp('Sobel算子自动选择的阈值为:
')
disp(thresh2)
BW2=edge(I,'sobel',0.05,'horizontal');
%以阈值为0.05水平方向对图像进行Sobel算子检测
subplot(132),imshow(BW2);
title('阈值0.05水平方向Sobel算子')
BW2=edge(I,'sobel',0.05,'vertical');
%以阈值为0.05垂直方向对图像进行Sobel算子检测
subplot(133),imshow(BW2);
title('阈值0.05垂直方向Sobel算子')
BW3=edge(I,'prewitt');
%以自动阈值选择法对图像进行Prewitt算子检测
figure,subplot(131),imshow(BW3);
title('自动阈值的Prewitt算子边缘检测')
[BW3,thresh3]=edge(I,'prewitt');
%返回当前Prewitt算子边缘检测的阈值
disp('Prewitt算子自动选择的阈值为:
')
disp(thresh3)
BW3=edge(I,'prewitt',0.05,'horizontal');
%以阈值为0.05水平方向对图像进行Prewitt算子检测
subplot(132),imshow(BW3);
title('阈值0.05水平方向Prewitt算子')
BW3=edge(I,'prewitt',0.05,'vertical');
%以阈值为0.05垂直方向对图像进行Prewitt算子检测
subplot(133),imshow(BW3);
title('阈值0.05垂直方向Prewitt算子')
二.Log算子代码
I=imread('rice.png');
BW1=edge(I,'log');
%以自动阈值选择法对图像进行Log算子检测
[BW1,thresh1]=edge(I,'log');
%返回当前Log算子边缘检测的阈值
disp('Log算子自动选择的阈值为:
')
disp(thresh1)
subplot(121),imshow(BW1);
title('自动阈值的Log算子边缘检测')
BW1=edge(I,'log',0.005);
%以阈值为0.005对图像进行Log算子检测
subplot(122),imshow(BW1);
title('阈值为0.005的Log算子边缘检测')
6.运行结果
通过理论与编程实践,我完成了这次设计的任务,其运行结果如图所示:
效果如图所示:
根据结果分析可以得出,图像的锐化处理可以使图像的边缘更加清晰,阈值的设定是图像分割依据,根据阈值可以将图像分为背景和目标两个部分,经过微分算子或拉普拉斯算子可以将图像的边缘提取出来,实现图像的锐化。
7.参考文献
[1]张汗灵编著MATLAB在图像处理中的应用/北京:
清华大学出版社,2008
[2]王家文MATLAB6.5图形图像处理国防工业出版社
[3]王晓丹,吴崇明编著基于MATLAB的系统分析与设计西安电子科技大学出版社2000
[4]余成波编著数字图像处理及MATLAB实现重庆大学出版社2003
[5]杨枝灵,王开等编著VisualC++数字图像获取处理及实践应用人民邮电出版社2003
[6]苏彦华等编著VisualC++数字图像识别技术典型案例人民邮电出版社2004
[7]何斌[等]编著VisualC++数字图像处理人民邮电出版社2002
[8]周金萍编著MATLAB6.5图形图像处理与应用实例科学出版社2003TP391.41/0447
[9]清源计算机工作室编著MATLAB6.0高级应用:
图形图像处理机械工业出版社2001TP391.41/
[10]郝文化主编MATLAB图形图像处理应用教程中国水利水电出版社2004
[11]苏金明,王永利编著MATLAB图形图像电子工业出版社2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 锐化 处理 报告