基于DSP器件的图像边缘检测的分析研究毕业设计论文.doc_第1页
基于DSP器件的图像边缘检测的分析研究毕业设计论文.doc_第2页
基于DSP器件的图像边缘检测的分析研究毕业设计论文.doc_第3页
基于DSP器件的图像边缘检测的分析研究毕业设计论文.doc_第4页
基于DSP器件的图像边缘检测的分析研究毕业设计论文.doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)基于DSP器件的图像边缘检测的分析研究毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 基于DSP器件的图像边缘检测的分析研究摘要:边缘检测是图像处理与分析中最基础的内容之一,是至今仍没有得到圆满解决的一类问题,也一直是图像处理与分析技术领域中的研究热点。本文分析研究了梯度、Roberts、Prewitt、Sobel、Kirsch、Laplacian、Marr等算法,同时还给出了一种新型的边缘检测算法。文中各边缘检测算法均在DSP软件仿真工具CCS中进行了仿真实现,并根据仿真结果对各算法加以了比较。本文正是考虑到DSP器件特有的稳定性、可重复性、高速性,尤其是可编程性和易于实现自适应处理等优点,才采用这一新颖的方法。此外,文中还介绍了一种最基本的模式识别算法-模板匹配,并对该算法进行了CCS仿真实现。关键词:边缘检测 DSP CCS 模板匹配Analysis of Image Edge Detection Based on DSP DevicesSong DengliangAbstract: Edge detection is one of the most fundamentals in image processing and analyzing, which is still unsolved so far, and has been research hot in the domain of image processing and analysis technique. In this thesis, the edge detection algorithms researched include Gradient, Roberts, Prewitt, Sobel, Kirsch, Laplacian and Marr. At the same time, a new detection algorithm is put forward. All the edge detection algorithms involved have been simulated using the DSP software simulation tools of CCS, and compared with each other based on their simulation results. Just taking the unique features of DSP devices into account, such as: stability, repeatability, high-speed, in particular programmable and easy to achieve adaptive processing, thus this thesis adopts the new approach. Moreover, the most basic pattern recognition algorithm - template matching algorithm is introduced and simulated using CCS. Key words: Edge detection DSP CCS Pattern recognition目 录引言1第1章 边缘检测及BMP位图介绍21.1 边缘概述21.2 边缘检测31.3 边缘检测的重要性31.4 BMP位图31.4.1 BMP位图概述31.4.2 BMP位图的文件结构41.4.3 BMP位图的数据结构41.4.4本文用于边缘检测的图像6第2章 DSP及其软件开发工具CCS72.1 DSP概述72.1.1 DSP芯片的特点72.1.2 DSP芯片的开发工具72.1.3 DSP的现状及未来发展82.2 DSP的软件开发工具CCS92.2.1 CCS概况92.2.2 CCS的工作模式102.2.3 CCS的系统配置102.2.4 CCS的开发流程112.2.5 CCS集成开发环境的功能112.2.6 软件开发时需注意的问题13第3章 边缘检测算法153.1 边缘检测的一般步骤153.2 常见的边缘检测算子163.2.1梯度算子163.2.2 Roberts算子173.2.3 Prewitt算子183.2.4 Sobel算子193.2.5 Kirsch算子193.2.6 Laplacian算子203.2.7 Marr算子203.3基于模板的边缘检测算子213.4算法的具体实现过程223.5算法仿真结果233.5.1 针对(a)图像的算法评价之边缘的细化程度243.5.2 针对(b)图像的算法评价之边缘的连续性253.5.3 针对(c)图像的算法评价之边缘的光滑性263.5.4 算法比较结果统计26第4章 模板匹配284.1模板匹配的概念284.2 模板匹配的方法284.3 算法实验仿真304.4 实验仿真结果31结论32参考文献33后记34附录A 程序清单35附录B 外文资料翻译44外文资料翻译原文部分:44外文资料翻译译文部分:50III中国民航大学本科毕业设计论文引言边缘是图像的最基本特征1。边缘检测通常是机器视觉系统处理图像的第一个阶段,是机器视觉领域内经典的研究课题之一,其结果的正确性和可靠性将直接影响到机器视觉系统对客观世界的理解2。图像边缘检测作为视觉的初级阶段,有着很长的研究历史,新理论、新方法不断涌现,一直是图像处理与分析技术领域中的研究热点。这一方面说明该研究方向本身的重要性,另一方面也反映出了它的深度与难度。随着计算机视觉和图像处理技术的发展,迫切需要视觉早期阶段的突破,需要寻求较好的边缘检测算法。计算机视觉处理可以看作是为实现某一任务从包含有大量的不相关的变量中抽取不变量,总之就是简化信息。这就意味着要丢掉一些不必要的信息而尽可能利用物体的不变性质。而物体的边缘就是物体最重要的不变性质:光线的变化显著地影响了一个区域的外观,但是不会改变它的边缘,最重要的是人的视觉系统也是对物体的边缘最敏感。因此,边缘检测也是图像处理的重要内容。近年来,DSP技术的发展不断将数字信号处理领域的理论研究成果应用到实际系统中,并且推动了新的理论和应用领域的发展,也对图像处理等领域的技术发展起到了十分重要的作用。由于图像处理的数据量大、计算复杂、数据处理相关性高,因此图像处理系统必须具有强大的运算能力。在实际的应用环境中,一方面,需要提出更好的图像处理理论以提高系统的性能,如图像边缘检测理论、神经网络在图像处理中应用等;另一方面需要在复杂度提高的情况下,保证系统的处理速度,达到实时性的要求,以保证系统的实际应用的价值。随着DSP芯片集成度、运算速度、数据吞吐率等性能的不断提高,DSP己被广泛地应用于实时图像处理领域3。纵观各资料库,有关基于DSP实现的图像边缘检测方面的文章还比较少,所以这一课题值得进行分析研究,希望本文可以起到抛砖引玉的作用。第1章 边缘检测及BMP位图介绍1.1 边缘概述边缘是指图像中像素灰度发生空间突变的像素的集合。根据灰度变化的剧烈程度,通常将边缘划分为阶跃状(step edge)边缘和屋顶状(roof edge)边缘两种类型。阶跃边缘位于其两边的像素灰度值有明显不同的地方;屋顶边缘位于灰度值从增加到减少的转折处。那么,对阶跃边缘和屋顶边缘分别求取一阶、二阶导数就可以表示边缘点的变化。其方向导数的变化规律如图1.1。需要说明的是,一般图像的边缘检测算法都是针对阶跃边缘提出的。利用一阶导数最大值和二阶导数过零点性质来得出不同算法。边缘的性质是各种边缘检测算法产生的基础。图1.1 两种边缘的方向导数的变化规律1.2 边缘检测边缘检测是图像处理、计算机视觉中最基础的内容,也是至今仍没有得到圆满解决的一类问题。通过对人类视觉系统的研究表明,图像中的边界特别重要,往往仅凭一条粗略的轮廓线就能够识别出一个物体。这个事实为机器视觉的研究提供了重要启示,即:物体可用其边界来表示,由图像灰度不连续点组成的基元图携带了原始图像的绝大部分有用信息4。边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。1.3 边缘检测的重要性图像边缘反映了图像中最有价值的信息,对边缘的检测长期以来是图像处理和计算机视觉中的最重要、最经典的课题之一。在工程应用领域中常需根据生产零件的轮廓特征来进行物体的识别。在图像检索中,对边缘特征的提取也是正确搜索图像数据库的关键。因此,正确、理想地检测图像的边缘具有良好的应用前景。本文研究的意义不仅仅在于检测出理想的边缘,同时为景物理解和景物分析提供了一个有价值的重要的特征参数。对视觉的中、高层处理有一定的促进作用。另外,运动目标的识别与跟踪也是当今计算机视觉领域的一大热点,对本文研究的各种具体的边缘检测方法,如将其应用于具体实际应用,从而提取指定的目标具有重大的意义。例如通过检测图像的边缘,可以实现车牌的定位,人脸的定位等,这为后继的车牌识别和人脸识别提供了重要的参考依据。1.4 BMP位图由于本文用于边缘检测的图像是256色BMP位图,所以必须了解它在计算机中的存储结构形式。这样才能准确读取其实际的位图数据,以便进一步在CCS中对数据进行处理。下面就对BMP位图进行一下介绍。1.4.1 BMP位图概述BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序5。 1.4.2 BMP位图的文件结构典型的BMP图像文件由四部分组成:1位图文件头数据结构,它包含BMP图像文件的类型、文件大小等信息;2位图信息头数据结构,包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;3调色板,这个部分是可选的,有些位图需要调色板,有些位图不需要调色板,比如真彩色图(24位的BMP);4位图数据,这部分的内容根据BMP位图使用的位数不同而不同。1.4.3 BMP位图的数据结构1 BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2 BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADERWORD bf Type; / 位图文件的类型,必须为BMP(0-1字节)DWORD bfSize; / 位图文件的大小,以字节为单位(2-5字节)WORD bfReserved1; / 位图文件保留字,必须为0(6-7字节)WORD bfReserved2; / 位图文件保留字,必须为0(8-9字节)DWORD bfOffBits; / 位图数据起始位置,偏移量(10-13字节) BITMAPFILEHEADER;3 位图信息头(40字节)BMP位图信息头数据用于说明位图的尺寸等信息。其结构定义如下:typedef struct tagBITMAPINFOHEADERDWORD biSize; / 本结构所占用字节数(14-17字节)LONG biWidth; / 位图的宽度,以像素为单位(18-21字节)LONG biHeight; / 位图的高度,以像素为单位(22-25字节)WORD biPlanes; / 目标设备的级别,必须为1(26-27字节)WORD biBitCount; / 每像素所需的位数,必须是1,4,8,24(28-29字节)DWORD biCompression; / 位图压缩类型,必须是 0, 1或2 (30-33字节)DWORD biSizeImage; / 位图的大小,以字节为单位(34-37字节)LONG biXPelsPerMeter; / 位图水平分辨率,每米像素数(38-41字节)LONG biYPelsPerMeter; / 位图垂直分辨率,每米像素数(42-45字节)DWORD biClrUsed; / 位图实际使用颜色表中的颜色数(46-49字节)DWORD biClrImportant; / 位图显示过程中重要的颜色数(50-53字节) BITMAPINFOHEADER;4 颜色表 颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下: typedef struct tagRGBQUAD BYTE rgbBlue; / 蓝色的亮度(值范围为0-255)BYTE rgbGreen; / 绿色的亮度(值范围为0-255)BYTE rgbRed; / 红色的亮度(值范围为0-255)BYTE rgbReserved; / 保留,必须为0 RGBQUAD;颜色表中RGBQUAD结构数据的个数由biBitCount来确定:当biBitCount=1,4,8时,分别有2,16,256个表项;当biBitCount=24时,没有颜色表项。位图信息头和颜色表组成位图信息。BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader/ 位图信息头RGBQUAD bmiColors1; / 颜色表 BITMAPINFO;5 位图数据 位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数: 当biBitCount=1时,1个像素占1/8个字节;当biBitCount=4时,1个像素占1/2个字节;当biBitCount=8时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节;Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。在数字图像处理中,许多算法就是针对24位真彩色位图或8位灰度位图设计的。本文采用的图像是8位256色的灰度BMP图像,大小160146,占用24438个字节。1.4.4本文用于边缘检测的图像为了比较各种算法的检测结果,用于算法评价的图像要求具有代表性。图像分成两大类,人工合成图像和自然真实图像。本文采用的图像如图1.2。其中图(a)、(b)是人工合成的图像,图(b)较图(a)复杂;图(c)为自然真实图像。(c)(b)(a)图1.2 本文算法检测用图 第2章 DSP及其软件开发工具CCS2.1 DSP概述DSP (Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。2.1.1 DSP芯片的特点DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据(哈佛结构); (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作; (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。但DSP芯片的上述特点,也使其在各个领域得到了越来越广泛的应用。2.1.2 DSP芯片的开发工具DSP芯片的开发需要一套完善的软、硬件开发工具。DSP芯片的开发工具可以划分为代码生成工具和代码调试工具两类6。代码生成工具的作用是将C语言、汇编语言或者两者的混合语言编写的DSP源代码程序编译、汇编并链接成可执行的DSP代码。C编译器、汇编器和链接器是DSP代码生成工具所必须得。 C编译器(C compiler)将C语言源代码自动地编译成汇编语言源代码程序。 汇编器(assembler)将汇编语言源代码文件汇编成机器语言COFF目标文件,在源文件中包含了汇编指令、宏命令及指令等。 链接器(linker)把汇编生成的可重定位的COFF目标模块组合成一个可执行的COFF目标模块。它能调整并解决外部符号参考。链接器的输入是可重定位的COFF目标文件和目标库文件,它也可以接受来自文档管理器的目标文件以及链接以前运行时所产生的输出模块。代码调试工具的作用是对DSP程序及目标系统进行调试,使之能够达到设计目标。2.1.3 DSP的现状及未来发展DSP应用的快速发展为数字信息产品带来广阔的发展空间,并将支持通信、计算机和消费类电子产品的数字化融合。目前,在VoIP(网络电话)、DSL(数字用户线路)、Cable Modem(电缆调制解调器)、3G、数字相机和马达控制等需要实时处理大量数字信息的应用中,都可见到DSP的身影,DSP无疑已经成为推动数字化进程的动力。其产品介绍如下:1. TMS320C2000系列包括C24x和C28x系列。C28x系列主要用于大存储设备管理,高性能的控制场合。 2. TMS320C3x系列包括C3x和VC33,主要推荐使用VC33。C3x系列是TI浮点DSP的基础。3. TMS320C5x系列已不推荐使用,建议使用C24x或C5000系列替代。4. TMS320C5000系列包括C54x和C55x系列。其中VC54xx还不断有新的器件出现,如:TMS320VC5471(DSPARM7)。 C55x系列是TI的第三代DSP,功耗为VC54xx的1/6,性能为VC54xx的5倍,是一个正在发展的系列。 C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。5. TMS320C6000系列包括C62xx、C67xx和C64xx。此系列是TI的高档DSP系列。其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。 C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。 C64xx系列是新发展,性能是C62xx的10倍。6. OMAP系列是TI专门用于多媒体领域的芯片,它是C55ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。2.2 DSP的软件开发工具CCS由于本文的主要目的是运用DSP的软件开发工具CCS对图像进行边缘检测的分析研究,故对其硬件开发方面未作涉及,在此作一说明。在前一节中简要的介绍了一些DSP的情况,那么在本节中将着重介绍其软件开发工具CCS的概况、工作模式、配置、开发流程、功能以及进行软件开发时需注意的问题等内容。2.2.1 CCS概况CCS (Code Composer Studio)开发工具是TI公司针对DSP开发的集成软件开发环境,TI公司的每个DSP系列对应不同的CCS。本文采用的是CCS 2.0版本:CCS 2.0(Code Composer Studio Version 2.0)代码调试器是一种针对标准TM320调试接口的集成开发环境IDE(Integrated Development Environment),由TI公司在1999年推出。CCS包含源代码编辑工具、代码调试工具、可执行代码生成工具和实时分析工具,并支持设计和开发的整个流程,如图2.1。实时观察分析、统计和跟踪调试、语法检查和断点设置等编辑、编译和链接生成代码设计方案图2.1 CCS的开发流程CCS采用Windows风格界面,集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C+和汇编的混合编程。它的出现大大简化了DSP的开发工作。2.2.2 CCS的工作模式CCS有两种工作模式:1、软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。2、硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。本文只采用软件仿真器模式,仿真TMS320VC5509器件。在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。2.2.3 CCS的系统配置 设置CCS工作在软件仿真环境:(1)双击桌面上图标: , 进入CCS设置窗口;(2)在出现的窗口中按标号顺序进行如下设置,如图2.2:单击输入配置单击选择此配置单击清除原先配置单击完成和保存设置图2.2 CCS系统配置框图(3)接着在下面出现的窗口中选择“否(N)”。此时CCS已经被设置成Simulator方式(软件仿真TMS320VC5509器件的方式7),如果一直使用这一方式就不需要重新进行以上配置操作了。2.2.4 CCS的开发流程将C语言、汇编语言或者两者的混合语言编写的DSP源代码程序编译、汇编并链接成可执行的DSP代码并调试的过程。其流程如图2.3。编写C语言源程序序宏文件C编译器文档管理器生成TMS320汇编源文件编写TMS320汇编语言源程序宏库汇编器生成COFF文件链接器写FLASH调试器格式转换输出可执行文件软件调试仿真TMS320目标系统图2.3 CCS的开发流程2.2.5 CCS集成开发环境的功能CCS集成开发环境(IDE)支持从编辑、汇编、链接到调试DSP应用程序的整个开发过程。它包括以下特征:1强大的源代码编辑器CCS允许编辑C语言、汇编语言或者两者的混合语言源代码,能在C代码之后显示与之对应的汇编指令。集成编辑环境提供的功能有:关键词、注释和字符串的高亮度显示;随时获得相关的在线帮助;快速查找,在一个或多个文件中查找或替换等等。2.方便的应用程序生成特性CCS使用工程(project)来管理整个应用程序设计的所有文档,如图2.4。工程中包含C语言源代码、汇编语言源代码、库文件、链接文件、头文件等等。大大地方便了开发设计人员,加强了对文件管理,大大地提高了开发设计的效率。图2.4 工程管理界面3.方便的应用程序调试特性CCS的调试工具以下功能: 设置一个或多个断点; 使用Watch窗口查看变量; 查看、编辑存储器和寄存器的值; 观察C语言指令及其反汇编代码; 使用图形窗口显示直观的实时数据等。2.2.6 软件开发时需注意的问题在进行程序设计过程中,肯定会遇到这样那样的问题,这些问题对程序编写、编译调试的成功起着至关重要的作用,现把它们归纳总结如下。1DSP的C语言同主机C语言的主要区别?1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过printf命令虚拟输出到主机的屏幕上; 2)DSP的C语言的编译过程为:C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化;3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位; 4)DSP的C的效率较高,非常适合于嵌入系统。 2C程序代码和数据的定位.cinit 存放C程序中的变量初值和常量;.const 存放C程序中的字符常量、浮点常量和用const声明的常量; .switch 存放C程序中switch语句的跳针表;.text 存放C程序的代码;.bss 为C程序中的全局和静态变量保留存储空间;.far 为C程序中用far声明的全局和静态变量保留空间;.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间。3Link的cmd文件的作用是什么? cmd文件由3部分组成: 1)输入输出定义:.obj文件:链接器要链接的目标文件,.lib文件:链接器要链接的库文件,.map文件:链接器生成的交叉索引文件,.out文件:链接器生成的可执行代码; 2)MEMORY命令:描述系统实际的硬件资源 ;3)SECTIONS命令:描述“段”如何定位。 Link的cmd文件用于DSP代码的定位。由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个用户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。 第3章 边缘检测算法我们知道,边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。我们将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。3.1 边缘检测的一般步骤图像边缘检测流程如图3.1:图3.1 图像边缘检测流程图像的边缘检测一般分为四个步骤:滤波、增强、检测、定位。滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折衷。本文采用的是空间低通滤波法进行平滑滤波。 增强:增强边缘的基础是确定图像各点邻域强度的变化值。使用各种算法可以得到边缘增强的图像。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。得到的边缘增强图像,为256灰度级的图像。此时,图像灰度变化平缓的区域已经没有了,图像中只剩下了灰度突变的地方,其灰度值得到了增强。检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。本文采用的是一维最大熵阈值分割方法进行阈值判断8。最后用计算出的阈值对增强图像二值化,将256级图像变为2值图像,将边缘突变明显的地方显示出来,这样就得到边缘图像。定位:确定边缘所在的像素,如果要更加精确地确定边缘位置,也可以在子像素分辨率上来估计边缘位置,边缘的方向也可以被估计出来。在边缘检测算法中,前三个步骤用得十分普遍。这是因为在大多数情况下,仅仅需要边缘检测指出边缘出现在图像某一点像素的附近,而没有必要指出边缘的精确位置或方位。3.2 常见的边缘检测算子3.2.1梯度算子对于图像f(x,y),在(x,y)处的梯度定义为 (3-1)梯度是一个矢量,其大小和方向分别为: (3-2) (3-3)梯度的方向是f(x,y)在该点灰度变化率最大的方向。对于离散图像处理而言,常用到梯度的大小,因此把梯度的大小习惯称为“梯度”。 在实际应用中,通常用绝对值来近似梯度幅值: (3-4) 或 梯度的幅值实际上与边缘的方向无关,这样的算子称为各向同性算子(Isotropic Operator)。对于阶跃边缘,在边缘点处一阶导数有极值,因此可计算每个像素处的梯度来检测边缘点。在实际处理数字图像的时候,可用采用一阶差分近似代替图像函数的一阶偏导数,定义为: (3-5) (3-6) 利用图像灰度的一阶导数算子在灰度迅速变化处得到的极值来进行奇异点的检测。通过(3-4)式计算出它在某一点的值(即该点的梯度大小),梯度大小就代表该点的“边缘强度”,梯度的方向与边缘走向垂直。其对应模板如图3.2:图3.2 梯度算子模板 为了检测边缘点,通过设置适当的阈值T对梯度图像进行二值化 (3-7) 这样就形成一幅边缘二值图像 。显然,梯度算子是最原始、最基本的检测方法。根据灰度迅速变化处一阶导数达到最大值的原理,利用导数算子检测边缘。这种算子仅计算相邻像素的灰度差,对噪声敏感,无法抑制噪声的影响。3.2.2 Roberts算子由Roberts提出的算子是一种利用局部差分算子寻找边缘的算子,它在22邻域上计算对角导数.其差分计算式如下: (3-8) (3-9) 其对应的模板如图3.3: 3.3 Roberts算子模板通过 (3-10)计算出该点的梯度幅度值,然后选取适当的门限T,处理形成为一个二值边缘图像。 Roberts算子与梯度算子检测边缘的方法类似,但效果较梯度算子略好。3.2.3 Prewitt算子为在检测边缘的同时减少噪声的影响,Prewitt从加大边缘检测算子的模板大小出发,由22扩大到33来计算差分。其差分计算式如下: (3-11) (3-12) 其对应的模板如图3.4:图3.4 Prewitt算子模板Prewitt算子没有把重点放在接近模板中心的像素点。当用两个掩模板(卷积算子)组成边缘检测器时,通常取较大的幅度作为输出值。这使得它们对边缘的走向有些敏感。取它们的平方和的开方可以获得性能更一致的全方位的响应。这与真实的梯度值更接近。然后选取适当的门限T,处理形成为一个二值边缘图像。采用Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响。3.2.4 Sobel算子Sobel算子在Prewitt算子的基础上,对4-邻域采用加权的方法计算差分。 (3-13) (3-14)其对应的模板如图3.5:图3.5 Sobel算子模板Sobel算子比较重视接近模板中心像素点,所以给其以比较大的权重。Sobel算子很容易在空间上实现,利用像素点上下、左右相邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘检测。因此Sobel算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但是,正是由于局部平均的影响,它同时也会检测出许多伪边缘,且边缘定位精度不够高。所以,当对精度要求不是很高时,这是一种较为常用的边缘检测方法。3.2.5 Kirsch算子方向算子利用一组模板分别计算图像每一像素在不同方向上的差分值,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘方向。常用的八方向Kirsch算子 33模板如图3.6所示,各方向的夹角为45度。图3.6 33八方向Kirsch算子模板3.2.6 Laplacian算子 Laplacian算子是线性二阶微分算子9。函数f(x,y)的拉普拉斯算子公式为: (3-15)对离散的数字图像而言,二阶偏导数用二阶差分近似,则 (3-16) 其对应模板如图3.7:图3.7 Laplacian算子模板Laplacian算子是一个与方向无关的各向同性的边缘算子。若只关心边缘点的位置而不顾其周围的实际灰度差时,一般选择该算子进行检测。其特点是:各向同性、线性和位移不变;对细线和孤立点检测效果好。但有两个缺点:其一是边缘方向信息的丢失,常产生双像素的边缘;其二是它是二阶差分,对噪声有双倍加强作用。3.2.7 Marr算子正如上面所提到的,利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感。所以,希望在边缘增强前滤除噪声。为此,Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成Marr算子,亦称之为LoG(Laplacian of Gaussian)算子。该算子从生物视觉理论导出。由于Laplacian算子对噪声比较敏感,为了减少噪声的影响,该算子先用高斯函数平滑,然后再用Laplacian算子检测边缘。平滑函数采用的正态分布的高斯函数为: (3-17)式中 为方差。用 对图像 的平滑表示为: (3-18)然后,再对 用Laplacian算子进行边缘检测,即 (3-19) 式中*代表卷积。上式中称为高斯-拉普拉斯算子,也称为“墨西哥草帽”。 其特点是:这个算子在定义域内平均值为零,将不会改变图像的整体动态范围。因为的平滑性质能减少噪声的影响,所以当边缘模糊或噪声较大时,利用检测过零点能提供较可靠地边缘位置。实际应用时,应根据噪声水平和边缘点定位精度要求适当选取 值(图像卷积后的模糊程度正比于 值)。其常用的模板如图3.8。 图3.8 Marr算子常用模板Marr算子的滤波、增强、检测这三个边缘检测步骤,其中平滑是用高斯滤波器来完成的;增强是将边缘转换成零交叉点来实现的;边缘检测则是通过检测过零交叉点来进行的。3.3基于模板的边缘检测算子传统的边缘检测算子的噪声平滑能力和边缘定位能力是矛盾的,为了克服这个不足,正确地得到图像的边缘信息,人们提出了很多方法,如多尺度空间滤波、Facet模型检测边缘、模板匹配、Hough变换、小波变换、人工神经网络、模糊推理等算法。但这些方法绝大多数没有经典的算法精简,要么难以获得合理的计算复杂度,要么需要人为的调节各种参数,有时甚至难以实时运行。因为传统边缘的定义为图像中灰度的突变,所以这样定义边缘既失去了边缘的部分信息,又把噪声的影响包含在了边缘中。其实,边缘往往具有以下特征:(1)灰度突变;(2)是不同区域的边界;(3)具有方向性。根据边缘的这三个特征,可以判定所关心的区域其特征是否存在差异来判定是否存在边缘的可能性。假如特征没有差异,则认为是平滑区;假如特征有差异,则判定为边缘点。算法的具体实现步骤如下:1) 设置四个33模板如图3.9所示。显而易见,四个模板分别按、以(x,y)点为中心将33的区域分成两个部分,按照这四个模板分别对图像中的每一像素点进行卷积求和操作。2)对图像中每一像素点求得的四个结果再求绝对值,将每个结果分别与一个阈值比较,假如其中任意一结果大于或等于阈值T,则该模板的中心点所对应的图像像素点的灰度值为255,否则为0。图3.9 本文算法模板检测对于有噪声的图像,由于噪声是随机分布的,因此不论(x,y)是有效边界点还是处于平坦区域内部,沿边缘方向划分的两个区域的噪声分布和噪声强度,在概率上相同。从四个模板的结构可以看出,噪声的影响基本上被相应的抵消,不会对边缘提取产生太大的影响,因此该算法具有较好的抗噪能力,克服了传统的边缘检测仅考虑灰度突变的局限。3.4算法的具体实现过程本文研究是基于DSP器件的图像边缘检测,这里主要考虑的是各边缘检测算法如何在CCS中的实现问题。由于DSP的代码需要绝对定位,不像一般的软件是由系统定位,所以需要编写与之对应的链接文件,进行准确定位。又因为要在watch窗口中观察图像边缘检测的效果,所以必须设置固定的数组用于存取图像的源数据和其处理后的数据。本文中的几个边缘检测方法在CCS中的实现大同小异,有的只是算法的模板大小的区别,下面以Sobel算法实现为例进行说明。(各算法的具体程序见附录A)算法主要分为以下几个步骤:(l)读入图像数据到dbImage数组。在这儿需要注意的是:其一,256色BMP图像的偏移量为1078字节;其二,BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。(2)对源图像数据进行平滑滤波,本文采用低通滤波器。(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论