数字图像锐化算法的研究与实现论文定稿 - 范文中心

数字图像锐化算法的研究与实现论文定稿

06/08

xxxxxxxxxxxxxxx

毕 业 设 计

学生姓名

指导教师 学 院专 业 xxxxx 学号 xxxxxxxxxxxx 电子信息工程 年级 xxxxx 级

论文答辩日期

xxxxxxxxxxxxxxx

数字图像锐化算法的研究与实现

完成日期:

指导教师签字:

答辩小组成员签字:

摘 要

数字图像处理技术的迅速发展为人类带来了巨大的经济效益。首先,图像处

理技术可以帮助人们更加客观、准确地认识世界,人的视觉系统可以帮助人类从外界获得3/4以上的信息,而图像、图形又是所有视觉信息的载体。其次,数字图像处理技术可以拓宽人类获取信息的视野范围。基于DSP 数字图像锐化处理是最基本的方法之一。数字图像锐化最常用的是梯度锐化法,但除梯度算法外,图像锐化的方法还有Roberts 、Prewitt 、Sobel 和Laplacian 等多种算法。本文介绍了图像锐化的基本概念,以及实现锐化的方法,并将几种算法进行对比。简要说明了CCS 这个软件及其开发流程。最后重点提出了一种基于拉普拉斯算法的图像锐化方法,并在DSP 上实现其算法。

关键词:图像增强;图像锐化;锐化算法;DSP

Abstract In the process of acquiring the image, due to a variety of factors, the image

quality will be degraded, the purpose of image enhancement processing by selectively highlight to person or machine analysis of some information of interest, inhibit some useless information, in order to improve the value of the image. Based on the DSP digital image sharpening processing is one of the most basic method. The most commonly used digital image sharpening is gradient sharpening, but apart from the gradient algorithm, image sharpening methods include Roberts, Prewitt, Sobel and Laplacian algorithms. This paper introduces the basic concept of image sharpening, sharpening and realization method, and compares several algorithms. A brief description of the CCS and the software development process. Then we propose an image sharpening method based on Laplasse algorithm, and realize the algorithm of the design is consistent with the current trends in DSP.

Key words: image enhancement; Image sharpening; Sharpening algorithm; DSP

目 录

1 绪论 .................................................. 1

1.1课题研究目的及意义 .............................................. 1

1.2国内外研究现状、发展动态 ........................................ 1

2数字图像锐化概述 ....................................... 2

2.1数字图像锐化概念 ................................................ 2

2.2锐化目的 ........................................................ 2

2.3锐化原理 ........................................................ 2

2.4常用的锐化算法 .................................................. 2

3图像锐化算法的研究 ..................................... 3

3.1基于空间域的一些锐化算法 ........................................ 3

3.1.1梯度锐化法 .................................................... 3

3.1.2 Sobel锐化算法 ................................................ 4

3.1.3 Roberts锐化算法 .............................................. 4

3.1.4 Prewitt锐化算法 .............................................. 5

3.1.5Laplacian 锐化算法 ............................................. 6

3.2基于频率域的一些锐化算法 ........................................ 8

3.3几种锐化算法之间的比较 .......................................... 9

4.CCS 软件简介 ......................................... 10

4.1CCS 环境简介 .................................................... 10

4.2CCS 主要功能 .................................................... 10 5 基于拉普拉斯算法的图像锐化算法 ................................. 11

5.1拉普拉斯锐化原理 ............................................... 11

5.1.1二阶微分算法(拉普拉斯算子) ................................. 11

5.2基于DSP 算法的实现 ............................................. 12

5.3锐化程序的实现 ................................................. 12

5.3.2图像读取的程序实现 ........................................... 13

5.3.3对像素进行拉普拉斯运算法的流程图及程序 ....................... 13

5.4图片锐化效果比较 ............................................... 14

5.5同一张图片不同算法下的锐化效果分析 ............................. 16

5.5.1用Roberts 梯度算子实现图像锐化的结果与程序 . .................. 16

5.5.2用Prewitt 算子实现图像锐化的结果与程序 ....................... 17

5.5.3用Sobel 算子实现图像锐化的结果与程序 ......................... 18

5.5.4用Laplacian 算子实现图像锐化的结果与程序 ..................... 19 6总结与展望 ............................................................ 21 参考文献 ................................................................. 22 致谢 ...................................................................... 23 附录 ...................................................................... 24

1 绪论

1.1课题研究目的及意义

数字图像锐化处理又称为计算机图像处理,它最早出现于20 世纪50 年代,

当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像

信息。图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。

本论文研究的就是以当前流行的DSP 硬件开发环境和软件开发环境CCS2.0

为基础,对数字图像进行锐化处理的研究与实现。讨论数字图像锐化处理的原理

和目的,分析不同算子的优缺点和应用场合,并且基于DSP 实现拉普拉斯算法的

图像锐化处理。希望可以为解决实际的数字图像锐化处理提供有益的帮助;并通

过这此次毕业设计,综合运用数字信号处理、DSP 技术以及其他有关先修课程的

理论和生产实际知识去分析和解决具体问题,使所学知识得到进一步巩固、深化

和发展。利用DSP 研究数字图像锐化处理具有相当的学术价值和实用价值,不仅

适应未来的数字图像处理的发展,而且为我们学习DSP 打下一定基础,从长远来

看该研究具有巨大的现实意义。

1.2国内外研究现状、发展动态

视觉是人类从大自然中获取信息的主要手段,而图像正是人类获取视觉信息

的主要途径,图像处理,就是对图像信息进行加工以满足人的视觉心理或应用需

求的行为。随着电子技术和计算机技术的不断提高,图像处理学已经进入到数字

图像处理阶段,计算机运算速度的提高促进了数字图像处理技术的发展。目前数

字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等

各个领域,在国民经济中发挥越来越大的作用,其中最典型的应用是在通信工程

中的应用。数字图像处理技术目前发展很快,不过在标准化处理方面还得继续发

展和研究。与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大

的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人

视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景

远大的新型学科。数字图像锐化算法虽然只是数字图像处理知识中很小的一部

分,但是也是必不可少的一部分,在日常生活和工作中,数字图像锐化算法对图

像处理的应用和处理提供了便利的渠道。在产品应用上,目前重要的DSP 应用产

品,都是采用国际大厂的DSP ,所以国内厂商缺少竞争的机会和立足的舞台。国

外的商业化信号处理设备一直在迅速发展,欧美等科技大国保持着国际领先的地

位。

2数字图像锐化概述

2.1数字图像锐化概念

在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声

主要为加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量集中在其低频

部分,噪声和边缘信息集中在高频部分。原始图像在平滑处理后会出现图像边缘

和图像轮廊模糊的现象发生。

为了减少这类不利效果的影响,就需要利用图像锐化处理,使图像的边缘变

得清晰。图像受到了平均或积分运算后会变得模糊,因此可以对图像进行逆运算

就可以使图像变的清晰。 2.2锐化目的

数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的图

像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影

响。二是把物体的边界提取出来,把它进行分割,更好的识别目标区域。图像锐

化后,图像的质量有了改变,使得图像更适合人眼识别和观察。

2.3锐化原理

数字图像的锐化可分为线性锐化滤波和非线性锐化滤波。

一、线性锐化滤波器

滤波器的中心系数为正数是必须要求的条件,其他系数为负数。

二、非线性锐化滤波器

非线性锐化滤波就是使用微分对图像进行处理,以此来锐化由于邻域平均导

致的模糊图像。图像处理中利用图y 像沿某个方向上的灰度变化率是最常用的。

在数字图像处理中,数据是离散的,幅值是有限的,其发生的最短距离是在

两相邻像素之间。因此在数字图像处理中通常采用一阶差分来定义微分算子。

2.4常用的锐化算法

实现图像的锐化可使图像的边缘或线条变得清晰。图像锐化包括空域锐化和

频域锐化。其中空域锐化有梯度运算(Roberts 交叉微分算子)、各种锐化算子,

其中主要的锐化算子包括Sobel 微分算子,Prewitt 微分算子,拉普拉斯(Laplacian )算子和频域锐化方法。

3图像锐化算法的研究

3.1基于空间域的一些锐化算法

3.1.1梯度锐化法

这是空间域锐化算法中比较常用的一种算法。对于图像f(x,y),在(x,y)处的梯度定义为

grad (x , y ) =⎛∂f (x , y ) ⎫⎛∂f (x , y ) ⎫22⎪f x '+f y '= (3-1) ⎪+ ⎪⎝∂x ⎭⎝∂y ⎭22

⎛∂f (x , y ) 'f x ')=a r c t θ=a r c t (a f y ∂y ⎝∂f (x , y ) ⎫⎪ (3-2) ⎪∂x ⎭

梯度的方向是f(x,y)在该点灰度变化率最大的方向[7]。

离散图像处理来说,梯度的大小经常被用到,所以梯度的大小被叫做“梯度”。并且一阶差分近似表示,即

f y '=f (x , y +1) -f (x , y ) (3-3) f x '=f (x +1, y ) -f (x , y ) (3-4) 为简化梯度的计算,也可使用下面两式近似表示。

d x , y ) =m a f x ', f y ' (3-5) g r a (

d x , y ) =f x '+f y ' (3-6) g r a ( )

对于一幅图像中突出的边缘区,其梯度值较大;对于平滑区,梯度值较小;对于灰度级为常数的区域,梯度值为零。图3-1和3-2显示了图像采用此算法实验锐化处理的结果。

图3-1 原图 图3-2 梯度锐化图像

3.1.2 Sobel锐化算法

Sobel 锐化算法也是图像微分锐化算法之一。一幅图像进行Sobel 算子锐化

后,图像的灰度变化的幅度会有所增加。Sobel 算子表达式为:

21⎤⎡1⎥000 ⎢ ⎢⎥x 方向Sobel 算子 (3-7)

⎢⎣-1-2-1⎥⎦

⎡10-1⎤⎥20-2 ⎢ ⎢⎥y 方向Sobel 算子 (3-8)

⎢⎣10-1⎥⎦

所采用的Sobel 梯度的模的近似表达式为

S (x , y ) =

f (x -1, y -1) +2f (x -1, y ) +f (x -1, y +1) -

f (x +1, y -1) -2f (x +1, y ) -f (x +1, y +1)

f (x -1, y -1) +2f (x , y -1) +f (x +1, y -1) -

f (x -1, y +1) -2f (x , y +1) -f (x +1, y +1)

灰度值为一个特定值L ,即 + (3-9)

S (x , y ) ≥T ⎧L g (x , y ) =⎨ (3-10) ⎩f (x , y ) 其他

图3-3显示了采用Sobel 算法实现锐化处理的结果。

图3-3 Sobel 锐化图像

3.1.3 Roberts锐化算法

在计算图像的梯度时,除了用梯度算子和Sobel 算子,也可用Roberts 算子。

Roberts 算子又可称为梯度交叉算子,Robert 算子通常会在图像边缘附近的区域

内产生较宽的响应,用此算子可以很准确的定位边缘,但是他对噪声的敏感程度

也相对较强[8]。所以如果要用次算法进行锐化处理时,尤其要考虑到噪声的影响。

Roberts 算子对应的模板如下

⎡-10⎤ ⎢ x 方向Roberts 算子 (3-11) ⎥⎣01⎦

⎡0-1⎤ ⎢ ⎥y 方向Roberts 算子 (3-12)10⎣⎦

在用Roberts 算法计算梯度幅值时可用近似计算方法

G (x , y ) =f (x +1, y ) -f (x , y +1) +f (x , y ) -f (x +1, y +1) (3-13)

用卷积模板表示为

G (x , y ) =G x +G y (3-14)

用上面的式子计算出梯度幅值后,就可以设定一合适的门限T ,当某点梯度

值大于或等于某一门限T 时,规定该点的灰度值为一个特定L ,具体可见式 (3-10)。经过Roberts 算法锐化处理过的图像如下所示。

图3-4 Roberts 锐化图像

3.1.4 Prewitt锐化算法

Roberts 锐化算法在突出边缘的时候,相对被噪声的影响很大。而Prewitt 算法就

是为在锐化边缘的同时而减少噪声的影响而产生的,Prewitt 算子从加大边缘增

强算子的模板出发,有2×2扩大到3×3来计算差分[9],其模板具体如下所示。

⎡-101⎤⎢⎥ ⎢-101⎥ x 方向Prewitt 算子 (3-15)

⎢⎣-101⎥⎦

⎡-1-1-1⎤⎢0⎥00 ⎢⎥ y 方向Prewitt 算子 (3-16)

⎢11⎥⎣1⎦

通过上面的Prewitt 模板我们可以看出,这一算子与Sobel 算子不同的地方

在于没有把重点放在接近模板中心的像素点。当用两个掩模板时,输出值选最大

的。这使得它们对边缘的走向有些敏感。这与真实的梯度值更接近。

还有一种方法,Prewitt 算子可以转换成八个方向,叫做边缘样板算子。这

些算子样板由理想的边缘子图构成。依次用边缘样板去检测图像,与被检测区域

最为相似的样板给出最大值[10]。用这个最大值作为算子的输出值P[x,y],这样可

将边缘像素检测出来,但其具体模板和算子这里就不做详细的介绍了。用式

(3-15)和(3-16)做模板,通过Prewitt 算法得到的锐化效果图如下所示。

图3-5 Prewitt 锐化图像

3.1.5Laplacian 锐化算法

上面我们介绍的梯度算子、Sobel 算子、Roberts 算子以及Prewitt 算子都属

于线性一阶微分算子,而现在我们介绍的Laplacian 算子是线性二阶微分算子。

∂2f (x , y ) ∂2f (x , y ) ∇f (x , y ) = (3-17) +22∂x ∂y 2

对离散的数字图像而言,二阶偏导数用二阶差分近似,由此可以推导出

Laplacian 算子表达式为

∇2f (x , y ) = (3-18) f (x +1, y ) +f (x -1, y ) +f (x , y +1) +f (x , y -1) -4f (x , y )

由此也可以得到Laplacian 增强算子

g (x , y ) =f (x , y ) -∇2f (x , y ) = (3-19) 5f (x , y ) -f (x +1, y ) -f (x -1, y ) -f (x , y +1) -f (x , y -1)

其对应的模板为

⎡0-10⎤⎥-15-1 ⎢ ⎢⎥ (3-20)

⎢⎣0-10⎥⎦

通过分析Laplacian 算子可以得到其具有如下的特点[11] [12]。

1.Laplacian 增强算子起不了作用;

2.在斜坡底或低灰度侧形成“下冲”,而在斜坡顶或高灰度侧形成“上冲”,

说明Laplacian 增强算子具有突出边缘效果的特点。

通过以上分析,L a p l a c i a n 算子既能使图像高频分

量增强,又能使图像的低频分量得到保持,所以是图像锐化的一种好方法。但是

它对噪声的敏感程度非常强,甚至要超过Sobel 算子,所以在锐化处理时尤其要

注意到这一点。

Laplacian 算子跟其他算子一样,也存在着很多的变种。根据不同的需要可

以用不同的模板。其比较常见的模板有

⎡-1-1-1⎤⎥-19-1 ⎢ ⎢⎥ (3-21)

⎢⎣-1-1-1⎥⎦

⎡111⎤⎥1-91 ⎢⎢⎥ (3-22)

⎢⎣111⎥⎦

下面先分别给出用模板(3-20)和(3-21)两种锐化处理的仿真结果,分别

如图3-6和3-7所示。

图3-6 Laplacian 锐化图像1 图3-7 Laplacian 锐化图像2

3.2基于频率域的一些锐化算法

锐化是图像增强的一种。频率域图像增强就是选择合适的滤波器H(u,v)对频

谱成分F(u,v)进行调整,然后经过逆变换得到增强的图像g(x,y) [13]。下面给出了

频率域增强的一般过程(以傅立叶变换为例)为

FT (u , v ) 滤波FT f (x , y ) −D −→−F (u , v ) −H −−−→F (u , v ) H (u , v ) −ID −−→g (x , y )

图3-12 频率增强的一般过程

由滤波器的不同而会产生不同的增强效果。由于图像锐化是要图像的边缘、

细节(图像的高频分量)得到反映,所以要采用高通滤波器让高频成分得到通过,

而使低频部分削弱,所以图像锐化用的都是高频滤波器。相反图像平滑处理则用

低通滤波器。从而我们可得知基于频率域的各种锐化算法主要决定于高通滤波器

的性质。下面主要介绍三种高通滤波器及其实现锐化处理时的优缺点。

1.Butterworth 高通滤波器

n 阶Butterworth 高通滤波器的传递函数定义如下

H (u , v ) =1+(D 0D (u , v ) 2n ] (3-23)

其优点是高通滤波效果较好,只有少量低频通过,H(u,v)是渐变的,振铃现

象不明显;其缺点是计算复杂。

2.指数高通滤波器

指数高通滤波器的传递函数为

H (u , v ) =e

增长率由n 来控制

指数高通滤波器比起Butterworth 高通滤波器来效果要差些,但它的振铃现

象不明显。

3.梯形高通滤波器

梯形高通滤波器的定义为

⎧0⎪⎪D (u , v ) -D 1H (u , v ) =⎨⎪D 0-D 1⎪1⎩D (u , v ) D 0-[D 0n ]D (u , v ) (3-24)

梯形高通滤波器会产生微振铃现象,但是它的计算相对较简单,因此也是比

较常用的一种滤波器。但是一般不随意使用,而要特别考虑到噪声的影响[14]。

3.3几种锐化算法之间的比较

前面我们所说的几种算法没有绝对的优劣之分,因为锐化处理只是图像处理

的一个中间过程,而不是最终目的[15]。在不同的应用中,人们要实现的目标不

同,因此对锐化的要求也不同,因此很难找到一种所谓是最好的图像锐化算法。

下面就我们前面所说到的几种锐化算法做一些在噪声影响和边缘效果方面

比较,进而说说它们的适用环境。

1.Sobel 算法是以滤波算子的形式来提取边缘。分为X 方向和Y 方向。Sobel

算子很容易在空间上实现,噪声对Sobel 算子影响也比较小。因此Sobel 算子对

噪声具有一定的平滑作用,提供较为精确的边缘信息。所以,当对精度要求不是

很高时,这是一种较为常用的锐化算法。

2.Roberts 算子是一种用交叉的差分表示梯度的交叉梯度算子,它利用局部

差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘。同时由于没经

过图像平滑计算,因此不能抑制噪声。该算子对具有陡峭的低噪声图像响应效果

最佳。

3.Prewitt 算子和Sobel 算子都是对图像进行差分和滤波运算,其差别只是

平滑部分的权值有所不同,因此对噪声具有一定的抑制能力,同时也不能完全排

除锐化结果中出现伪边缘的现象。Roberts 算子对于边缘的定位来说比Prewitt 算

子高。但是Prewitt 算子边缘定位也算是比较准确和完整的一种算子了,其最大

的缺点是容易出现边缘多像素宽。

4.Laplacian 算子是一种常用的二阶导数算子。前面介绍的几种梯度法都有

方向性。但是Laplacian 算子是各向同性的,无方向性。这是拉普拉斯算子对于

数字图像锐化的最大优点。它的优点是对细节(比如细线和孤立点)的增强处理

效果要比一阶微分算子好,但这也正是它的缺点。它在增强图像本需要的细节的

同时也会增强图像所不需要的噪声,使得噪声也更加突出。

4.CCS 软件简介

4.1CCS 环境简介

CCS ,即Code Composer Studio,是TI 公司在1999年推出的一个开放、具

有强大集成开发环境。它最初是由GO DSP公司为TI 的C6000系列DSP 开发的。

在TI 收购了GO DSP后,将CCS 扩展到了其它系列。现在所有TI 的DSP 都可

以使用CCS 进行开发,但是其中的DSPBIOS 功能只有C5000和C6000的CCS

中才提供。

集成开发环境CCS 是针对TMS320系列的DSP ,工作在Windows 操作系统下,

提供有环境配置、源文件编辑、程序调试和分析等工具。CCS 工有两种工作模式

即硬件在线编程模式和软件仿真器模式,其中硬件在线编程模式可以运行在DSP

芯片上,与硬件开发板相结合在线编程和调试应用程序。可以对C 程序、汇编程

序和混合语言编程的DSP 源程序进行编译汇编,并能链接成为可执行的DSP 程序。

4.2CCS 主要功能

可以直接编写C 、汇编、cmd 文件等,将代码的编辑、编译、链接、调节等

其他功能调到一个软件环境中。高性能的编译器课使用户更容易发现一些错误。

断点工具可以在调试程序的时候,如果有各种断点的需求,那么它可以实现。支

持多DSP 调试,提供DSP 、BIOS 工具,增强对代码的实时分析能力。

5 基于拉普拉斯算法的图像锐化算法

5.1拉普拉斯锐化原理

我们对图像进行平均或积分运算后,图像和原来相比会变得模糊,所以我们

可以想办法那就是对图像进行逆运算来使图像重新变得清晰起来。从频谱角度来

看,图像的高频分量被衰减以后,图像就变得模糊啦,我们所以可以用高通滤波

这个办法来使图像变清晰。

图形的锐化一般有两种方法:一种是微分法,另外一种是高通滤波法。拉普

拉斯锐化法是属于常用的微分锐化法。

5.1.1二阶微分算法(拉普拉斯算子)

∂2f ∂2f 设∇f 为拉普拉斯运算子,则:∇f =2+2 ∂x ∂y 22

对于离散数字图像f(i,j),其一阶偏导数为:

∂f (i , )j =∆x f (i , )j =(f , i )j -(f -1i , ) j ∂x

∂f (i , )j =∆y f (i , )j =(f , i )j -(f , i -j )1∂y

二阶偏导数为 ∂2f (i , j ) =∆x f (i +1, j )-∆x f (i , j )=f (i +1, j )+f (i -1, j )-2f (i , j ) 2∂x ∂2f (i , j ) =∆y f (i +1, j )-∆y f (i , j )=f (i , j +1)+f (i , j -1)-2f (i , j ) ∂y 2

2∇拉普拉斯算子f 为:

∂2f ∂2f ∇f =2+2=f (i +1, j )+f (i -1, j )+f (i , j +1)+f (i , j -1)-4f (i , j ) ∂x ∂y 2

对于扩散现象引起的图像模糊,可以用下式进行锐化:

g (i , )j =j (f , i )-2ιk ∇(f , ) i j

这里k ι是扩散效应有关的系数。该系数取值要合理,如果k ι过大,图像轮廓边

缘会产生过冲;反之,如果k ι过小,锐化效果就不明显。

考虑到k ι是与扩散效应有关的系数,在本实现算法中,令k ι=1,则变化公式

为:

g (i , j )=5f (i , j )-f (i +1, j )-f (i -1, j )-f (i , j +1)-f (i , j -1)

用模板表示如下:拉普拉斯算子与梯度法相比,在读噪声的作用没有梯度强。

⎛0-10⎫⎪ * -15-1 ⎪ 0-10⎪⎝⎭

图5-1拉普拉斯算子

常用的模板还有:

⎛1-21⎫⎛-1-1-1⎫ ⎪⎪*H = -24*-2⎪ H = -18-1 ⎪ 1-21⎪ -1-1-1⎪⎝⎭⎝⎭

图5-2 常用拉普拉斯算子1 图5-3 常用拉普拉斯算子2

5.2基于DSP 算法的实现

图5-4主程序流程图 图5-5子程序流程图 利用产生图像的函数产生图像,对产生的目标调用锐化子程序,完成图像的

锐化。按照以上流程图对实验进行循环5次,对每张图片进行锐化,最后比较原

来图像和锐化后的不同。

5.3锐化程序的实现

在这里涉及一个主函数和2个子函数,子函数分别为Initlmage 和laplace, 其

中InitImage 包含一个ReadImage 子函数用于读取图像. 其具体实现方法如下。

5.3.1程序主函数

如图4主程序流程图,Initlmage 完成图像的读取,laplace 子函数完成了图像

锐化过程。首先用产生图象的函数产生图像,然后调用锐化子程序来对图像中的

每个像素进行拉普拉斯运算产生检测图。

5.3.2图像读取的程序实现

图5-6 InitImage 子函数流程图

其中运用了函数ReadImage 对文档中已有的图像进行载入,实行检测。

图5-7 ReadImage 子函数设计流程

5.3.3对像素进行拉普拉斯运算法的流程图及程序

对像素进行拉普拉斯运算。然后移位针对其他像素进行拉普拉斯运算。语句

中用来两个for 语句和一个移位来实现像素运算初值转换。从而实现对图像中的

每个像素进行拉普拉斯运算。

图5-8 拉普拉斯算法实现流程

5.4图片锐化效果比较

本程序通过六幅图形来验证图像锐化效果。通过InitImage 子函数生成调用图像。再经过Laplace 函数对图像中的每个像素进行拉普拉斯运算。下面对锐化前后图像进行对比。

图5-9锐化前灰度条 图5-10锐化后灰度条

拉普拉斯锐化使得在原先暗影区和亮区的分解变得明显了。

图5-11锐化前白点向四周渐变成灰色的图形 图5-12锐化后白点向四周渐变成灰色的

图形

比较图10和图11,可知图像是由中心白点向四周渐变成灰色的,没有边缘,拉普拉斯锐化突出了这些“边缘”,使得渐变区域颜色加深。

图5-13锐化前人物轮廓 图5-14锐化后人物轮廓

比较人物轮廓图13和图14,可得锐化后人物轮廓变得更为明显。

图5-15锐化前小路风景 图5-16锐化后小路风景

比较小路风景图15和图16,可得锐化后小路的边缘更为明显。

图5-17锐化前手机图 图5-18锐化后手机图

比较手机图17和图18,锐化后手的纹路被显示出来了。

图5-19锐化前宇航员在月球插旗 图5-20锐化后宇航员在月球插旗 比较宇航员图19和图20,锐化后宇航员、旗帜以及月球的轮廓的被明显地显示出来了。

5.5同一张图片不同算法下的锐化效果分析

5.5.1用Roberts 梯度算子实现图像锐化的结果与程序

利用Roberts 梯度算子法对灰度数字图像lena.bmp 进行边缘检测程序代码如下:

I=imread('C:\Documents and Settings\Administrator\桌面\数字图象处理实验\mape_file\lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=1:H-1

for j=1:W-1

J(i,j)=abs(M(i,j)-M(i+1,j+1))+abs(M(i+1,j)-M(i,j+1));

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('Roberts处理后');

图片5-1

5.5.2用Prewitt 算子实现图像锐化的结果与程序

利用Prewitt 算子对灰度数字图像lena.bmp 进行边缘检测,程序代码如下: I=imread('C:\Documents and Settings\Administrator\桌面\数字图象处理实验\mape_file\lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=2:H-1

for j=2:W-1

J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+M(i,j+1)-M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i+1,j-1)-M(i-1,j-1)+M(i+1,j)-M(i-1,j)+M(i+1,j+1)-M(i-1,j+1));

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('Prewitt处理后');

图片5-2

5.5.3用Sobel 算子实现图像锐化的结果与程序

图像lena.bmp 进行边缘检测,程序代码如下:

I=imread('C:\Documents and Settings\Administrator\桌面\数字图象处理实验\mape_file\lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=2:H-1

for

j=2:W-1

J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('Sobel 处理后');

图片5-3

5.5.4用Laplacian 算子实现图像锐化的结果与程序

用Laplacian 锐化算子对灰度数字图像lena.bmp 进行锐化处理,显示处理前、后图像。程序代码如下:

I=imread('C:\Documents and Settings\Administrator\桌面\数字图象处理实验\mape_file\lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=2:H-1

for j=2:W-1

J(i,j)=4*M(i,j)-[M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1)];

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('锐化处理后的图');

运行结果如下:

图片5-4

6总结与展望

本文介绍了图像锐化的基本概念,以及实现锐化的方法,并将几种算法进行对比,同时将一张实际的图片进行不同算法的锐化,从而找出一种合适的锐化算法。同时简要说明了CCS 这个软件及其开发流程。最后重点提出了一种基于拉普拉斯算法的图像锐化方法,并在DSP 上实现其算法。第一,研究拉普拉斯算子锐化图像的基本原理,并推导出图像锐化的拉普拉斯算子。第二,根据拉普拉斯算子,在CCS2软件上运行了C 语言编写的主函数和两个子函数,其中两个子函数为初始化图像的InitImage 子函数和对图像锐化的计算的Laplace 子函数来实现基于拉普拉斯算法的图像锐化程序。第三,采用六副模糊图像验证图像锐化的效果。比较实验结果,可知运用该算法锐化处理的图像比原来图像清晰。图像处理数字图像处理技术在航空航天、工业生产、医疗诊断、资源环境、气象及交通检测、文化教育等领域有着广泛的应用。在实际应用过程中,在用拉普拉斯算法进行图像锐化效果不理想是因为图像信噪比小要用较高的k ι才能得到清晰的图像。k ι(与扩散效应有关的系数)该系数值要合理,k ι过小,锐化效果不明显。因此要合理设置其值,得到合适的锐化效果。

参考文献

[1]卢允伟,陈友荣. 基于拉普拉斯算子的图像锐化算法研究和实现[J].计算机工程应用技术,2009,5(6): 1513-1515.

[2]曾嘉亮. 基于边缘检测的图像锐化算法[C].现代电子技术,2006,227(12): 91-95.

[3]刘直芳,王运琼,朱敏. 数字图像处理与分析[M].北京:清华大学出版社,2006: 83-89.

[4]徐献灵,林奕水.MA TLAN 在数字图像处理中的运用[J].实践与经验,2008,5: 66-68.

[5]狄岚. 利用MATLAB 实现谷类图像的增强[J].粮食与食品工业,2006,13(1): 54-57.

[6]王斌.MATLAB 实现数字图像增强处理[J].佳木斯大学学报,2005,23(1): 31-34.

[7]阮秋琦. 数字图像处理学[M].北京:电子工业出版社,2007:199-211.

[8]王晓丹,吴崇明. 基于MATLAB 的系统分析与设计[M].陕西:西安电子科技大学出版社,2009:11-15.

[9]蓝章礼,李益才,李艾星. 数字图像处理与图像通信[M].北京:清华大学出版社,2009:99-103.

[10]阮秋琦 阮宇智等. 数字图像处理[M].北京:电子工业出版社,2006:101-103.

[11] TMS320C54xDSP Enhanced Peripherals. Texas Instruments Incorporated, 1999

[12] TMS320C54x DSP Reference Set, V olume 1: CPU and Peripherals. Texas Instruments Incorporated,2001

[13] TMS320C54x User’s Guide. Texas Instruments Incorporated,1999

[14] TMS320C54x DSP/BIOS Application Programming Interface(API) Reference Guide. Texas Instruments Incorporated,2001

致谢

本文主要研究了本文介绍了图像锐化的基本概念,以及实现锐化的方法,并将几种算法进行对比。简要说明了CCS 这个软件及其开发流程。最后重点提出了一种基于拉普拉斯算法的图像锐化方法,并在DSP 上实现其算法。比较实验结果,可知运用该算法锐化处理的图像比原来图像清晰。通过以上的实验分析,我们可以得出:基于DSP 的图像锐化具有较好的锐化效果,并且不同的模版对图像锐化的效果不同,我们可以根据实际需要来选择不同的模版。如果一片暗区中出现了一个亮点,那么锐化处理的结果是这个亮点变得更亮,即图像锐化过程可以减少图象的模糊程度,加强图像的细节和轮廓,使图像的细节比原始图像像更加清晰,所以锐化在边缘检测中很有用。但是,它也有. 不理想的一面即锐化处理在增强图像边缘的同时也增加了图像的噪声。在学习中姜琴老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及悔人不倦的师者风范是我终生学习的楷模,赵老师的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。在此,谨向姜老师致以衷心的感谢和崇高的敬意!

附录

InitImage.c

#include

#define MODEGRAYBAR 0

#define MODEGRAY 1

#define MODEPHOTO1 2

#define MODEPHOTO2 3

#define MODEPHOTO3 4

#define MODEPHOTO4 5

#define MODEBLOCK 6

#define MODEINCLINE 7

#define MODEFPHOTO 8

#define GRAYBARLEVEL 16

void ReadImage(unsigned char *pImage,char *cFileName,int nWidth,int nHeight);

void InitImage(unsigned int nMode,unsigned char *pImage,int nWidth,int nHeight)

{ int x,y,nWork,nWork1;

unsigned char *pWork;

int nPointx=nWidth/2;

int nPointy=nHeight/2;

float fWork;

switch ( nMode )

{ case MODEGRAYBAR:

pWork=pImage; nWork=256/GRAYBARLEVEL; nWork1=nHeight/GRAYBARLEVEL;

for ( y=0;y

{for ( x=0;x

{(*pWork)=(y/nWork1)*nWork;

}

}

break;

case MODEGRAY:

pWork=pImage;

nWork1=nHeight-nPointy; nWork=nWork1*nWork1;

nWork1=nWidth-nPointx; nWork+=(nWork1*nWork1);

nWork/=256;

for ( y=0;y

{for ( x=0;x

{ nWork1=(x-nPointx)*(x-nPointx)+(y-nPointy)*(y-nPointy);

nWork1=255-nWork1/nWork;

if ( nWork1

else if ( nWork1>255 ) nWork1=255;

(*pWork)=nWork1;

}

}

}

} case MODEPHOTO1: ReadImage(pImage,"..\\DSP.bmp",nWidth,nHeight); break; case MODEPHOTO2: ReadImage(pImage,"..\\1.bmp",nWidth,nHeight); break; case MODEPHOTO3: ReadImage(pImage,"..\\2.bmp",nWidth,nHeight); break; case MODEPHOTO4: ReadImage(pImage,"..\\3.bmp",nWidth,nHeight); break; case MODEBLOCK: pWork=pImage; for ( y=0;y

void ReadImage(unsigned char *pImage,char *cFileName,int nWidth,int nHeight)

{ int j;

unsigned char *pWork;

FILE *fp;

if ( fp=fopen(cFileName,"rb" ) )

{ fseek(fp,1078L,SEEK_SET);

pWork=pImage+(nHeight-1)*nWidth;

for ( j=0;j

fread(pWork,nWidth,1,fp);

fclose(fp);

}

}

Laplace.c

#define IMAGEWIDTH 80

#define IMAGEHEIGHT 80

extern unsigned char dbImage[IMAGEWIDTH*IMAGEHEIGHT];

extern unsigned char dbTargetImage[IMAGEWIDTH*IMAGEHEIGHT];

int mi,mj,m_nWork1,m_nWork2;

unsigned int m_nWork,*pWork;

unsigned char *pImg1,*pImg2,*pImg3,*pImg;

unsigned int x1,x2,x3,x4,x5,x6,x7,x8,x9;

void Laplace(int nWidth,int nHeight)

{ int i;

pImg=dbTargetImage;

for ( i=0;i

(*pImg)=0;

(*pImg)=0;

pImg1=dbImage;

pImg2=pImg1+IMAGEWIDTH;

pImg3=pImg2+IMAGEWIDTH;

for ( i=2;i

{ pImg++;

x1=(*pImg1); pImg1++; x2=(*pImg1); pImg1++;

x4=(*pImg2); pImg2++; x5=(*pImg2); pImg2++;

x7=(*pImg3); pImg3++; x8=(*pImg3); pImg3++;

for ( mi=2;mi

{ x3=(*pImg1); x6=(*pImg2); x9=(*pImg3);

m_nWork1=x5

m_nWork2=x2+x4+x6+x8;

// m_nWork1=x5

// m_nWork2=x1+x2+x3+x4+x6+x7+x8+x9;

m_nWork1-=m_nWork2;

if ( m_nWork1>255 ) m_nWork1=255;

else if ( m_nWork1

(*pImg)=m_nWork1;

x1=x2; x2=x3;

x4=x5; x5=x6;

x7=x8; x8=x9;

}

(*pImg)=0; pImg++;

}

}

Sharp.c

#define IMAGEWIDTH 80

#define IMAGEHEIGHT 80

#define MODEGRAYBAR 0

#define MODEGRAY 1

#define MODEPHOTO1 2

#define MODEPHOTO2 3

#define MODEPHOTO3 4

#define MODEPHOTO4 5

void InitImage(unsigned int nMode,unsigned char *pImage,int nWidth,int nHeight);

unsigned char dbImage[IMAGEWIDTH*IMAGEHEIGHT];

unsigned char dbTargetImage[IMAGEWIDTH*IMAGEHEIGHT];

/* 直方图统计实验程序 */

int main()

{

InitImage(MODEGRAYBAR,dbImage,IMAGEWIDTH,IMAGEHEIGHT);

Laplace(IMAGEWIDTH,IMAGEHEIGHT);

InitImage(MODEGRAY,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);

InitImage(MODEPHOTO1,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);

InitImage(MODEPHOTO2,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);

InitImage(MODEPHOTO3,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);

InitImage(MODEPHOTO4,dbImage,IMAGEWIDTH,IMAGEHEIGHT); //BreakPoint Laplace(IMAGEWIDTH,IMAGEHEIGHT);

while (1); //BreakPoint

}


相关内容

  • 改进中值滤波器去噪算法研究
    改进中值滤波器去噪算法研究 陈 亮 (吉首大学信息科学与工程学院,湖南 吉首 416000) 摘 要 图像信号在产生.传输和记录过程中,经常会受到各种噪声的干扰,由于其严重地影响了图像的视觉效果,因此迫切需要合适的滤波器对其进行滤波.论文首 ...
  • 视频监控智能分析技术应用分析
    视频监控智能分析技术应用分析 一.概述 在视频监控飞速发展的今天,海量视频画面已经大大超过了人力有效处理的范围.而智能视频分析技术极大地发挥与拓展了视频监控系统的作用与能力,使监控系统具有更高的智能化,大幅度降低资源与人员配置,全面提升安全 ...
  • 盲源分离方法
    第30卷第10期2008年10月 Journalof 电子与信息学报 Electronics&InformationTechnology .,01.30No.10 Oct.2008 基于盲源分离的小波域多重音频水印方法 马晓红 孙长 ...
  • 毕业论文图像处理噪声方法与研究
    长 治 学 院 2013届学士学位毕业论文 图像处理中消除噪声的方法研究 学 号: 09407205 姓 名: 程晓满 指导教师: 上官晋太 专 业: 计算机科学与技术 系 别: 计算机 完成时间:2013年5月 图像处理中消除噪声的方法研 ...
  • 论文一绪论
    第1章 绪论 1.1论文研究背景 随着现代科学技术的发展,尤其达到了制造大规模集成电路工艺水平,数字信号处理技术相应的发展空间很大.数字信号处理是一门很前沿的交叉型学科理论深厚,技术发展很迅速.广泛应用于众多领域.数字信号处理理论和技术是当 ...
  • 武大毕业论文格式
    武汉大学本科生毕业论文(设计)书写印制规范 毕业论文写作是反映学生毕业论文工作成效的重要途经,是考核学生掌握和运用所学基础理论.基本知识.基本技能从事科学研究和解决实际问题能力的有效手段.掌握撰写毕业论文的基本能力是本科人才培养中的一个十分 ...
  • 数码后期』人像照片后期处理技巧
    即使你已经有了一些拍摄人像的经验,也能够从本书获得全新的拍摄灵感.因为在书中,你可以深刻而真切地体验每一幅照片的产生过程,深切而清楚地感知摄影师的心理,并从他们的拍摄实践中收获激情和创意,从而对人像摄影产生全新的看法! 本文导航 第1页: ...
  • 硕士学位论文开题报告格式模板
    华东交通大学硕士学位论文开题报告格式模板 本模板供统招硕士和同等学历硕士使用 (2005年12月制订) 一.页面设置  纸张大小:A4,正文部分可双面印刷  页边距:上2.8cm.下2.5cm,左.右2.5cm,装订线:0cm  页眉 ...
  • 虚拟现实论文
    2011-2012学年第1学期期末考试 论 文 考试科目: 虚拟现实技术 学 院: 信息与通信工程学院 专 业: 通信工程 班 级: 班内序号: 04 学 号: 10210559 姓 名: 徐瑞强 任课教师: 黄 海 北京邮电大学 时间:2 ...
  • 光流法运动目标跟踪论文
    研究生课程论文 <光流法运动目标跟踪> 课程名称 s 姓 名 学 号 专 业 任课教师 课程论文提交时间: 年 月 日 摘要 本文实现了对运动目标的跟踪检测,重点研究金字塔Lucas-Kanade算法,在研究基于特征点的目标跟踪 ...