图像锐化处理报告.docx

上传人:b****6 文档编号:6797901 上传时间:2023-01-10 格式:DOCX 页数:10 大小:433.21KB
下载 相关 举报
图像锐化处理报告.docx_第1页
第1页 / 共10页
图像锐化处理报告.docx_第2页
第2页 / 共10页
图像锐化处理报告.docx_第3页
第3页 / 共10页
图像锐化处理报告.docx_第4页
第4页 / 共10页
图像锐化处理报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

图像锐化处理报告.docx

《图像锐化处理报告.docx》由会员分享,可在线阅读,更多相关《图像锐化处理报告.docx(10页珍藏版)》请在冰豆网上搜索。

图像锐化处理报告.docx

图像锐化处理报告

学院

信息科学与工程

专业

电子信息工程

学生姓名

张楠楠

学号

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1