1、 基于 DSP 器件的图像边缘检测的分析研究 宋登亮 摘 要: 边缘检测是图像处理与分析中最基础的内容之一,是至今仍没有得到圆满解决的一类问题 ,也 一直是图像处理与分析技术 领域 中的研究热点。本文 分析 研究了 梯度、Roberts、 Prewitt、 Sobel、 Kirsch、 Laplacian、 Marr 等算法 , 同时还 给 出了一种新型的 边缘 检测 算法。 文中各边缘检测算法 均在 DSP 软件仿真工具 CCS 中进行了 仿真 实现 ,并根据仿真结果对各算法加以 了 比较。 本文 正是考虑到 DSP 器件特有的稳定性、可重复性、 高速性 , 尤其是可编程性和易于实现自适应
2、处理等 优点 ,才采用这一 新颖的方法。此外, 文中还介绍 了一种 最基本的模式识别算法 -模板 匹配 ,并对该算法进行了 CCS 仿真实现。 关键 词 : 边缘检测 DSP CCS 模板 匹配 Analysis of Image Edge Detection Based on DSP Devices Song Dengliang Abstract: Edge detection is one of the most fundamentals in image processing and analyzing, which is still unsolved so far, and has b
3、een 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 inv
4、olved 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 adaptiv
5、e 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 I 目 录 引言 . 1 第 1 章 边缘检测及 BMP 位图介绍 . 2 1.1 边缘概述 . 2 1.2 边缘检测 . 3 1.
6、3 边缘检测的重要性 . 3 1.4 BMP 位图 . 3 1.4.1 BMP 位图概述 . 3 1.4.2 BMP 位图的文件结构 . 4 1.4.3 BMP 位图的数据结构 . 4 1.4.4 本文用于边缘检测的图像 . 6 第 2 章 DSP 及其软件开发工具 CCS . 7 2.1 DSP 概述 . 7 2.1.1 DSP 芯片的特点 . 7 2.1.2 DSP 芯片的开发工具 . 7 2.1.3 DSP 的现状及未来发展 . 8 2.2 DSP 的软件开发工具 CCS . 9 2.2.1 CCS 概况 . 9 2.2.2 CCS 的工作模式 . 10 2.2.3 CCS 的系统配置
7、. 10 2.2.4 CCS 的开发流程 . 11 2.2.5 CCS 集成开发环境的功能 . 11 2.2.6 软件开发时需注意的问题 . 13 第 3 章 边缘检测算法 . 15 3.1 边缘检测的一般步骤 . 15 3.2 常见的边缘检测算子 . 16 3.2.1 梯度算子 . 16 3.2.2 Roberts 算子 . 17 II 3.2.3 Prewitt 算子 . 18 3.2.4 Sobel 算子 . 19 3.2.5 Kirsch 算子 . 19 3.2.6 Laplacian 算子 . 20 3.2.7 Marr 算子 . 20 3.3 基于模板的边缘检测算子 . 21 3.
8、4 算法的具体实现过程 . 22 3.5 算法仿 真结果 . 23 3.5.1 针对 (a)图像的算法评价之边缘的细化程度 . 24 3.5.2 针对 (b)图像的算法评价之边缘的连续性 . 25 3.5.3 针对 (c)图像的算法评价之边缘的光滑性 . 26 3.5.4 算法比较 结果 统计 . 26 第 4 章 模板匹配 . 28 4.1 模板匹配的概念 . 28 4.2 模板匹配的方法 . 28 4.3 算法实验仿真 . 30 4.4 实验仿真结果 . 31 结论 . 32 参考文献 . 33 后记 . 34 附录 A 程序清单 . 35 附录 B 外文资料翻译 . 44 外文资料翻译原
9、文部分: . 44 外文资料翻译译文部分: . 50 1 引言 边缘是图像的最基本 特征 1。 边缘检测通常是机器视觉系统处理图像的第一个阶段,是机器视觉领域内经典的研究课题之一,其结果的正确性和可靠性将直接影响到机器视觉系统对客观世界的理解 2。图像边缘检测作为视觉的初级阶段,有着很长的研究历史,新理论、新方法不断涌现 ,一直是图像处理与分析技术 领域 中的研究热点 。这一方面说明该研究方向本身的重要性,另一方面也反映出了它的深度与难度。随着计算机视觉和图像处理技术的发展,迫切需要视觉早期阶段 的突破,需要寻求较好的边缘检测算法。 计算机视觉处理可以看作是为实现某一任务从包含有大量的不相关的
10、变量中抽取不变量,总之就是简化信息。这就意味着要丢掉一些不必要的信息而尽可能利用物体的不变性质。而物体的边缘就是物体最重要的不变性质 : 光线的变化显著地影响了一个区域的外观,但是不会改变它的边缘 , 最重要的是人的视觉系统也是对物体的边缘最敏感。因此,边缘检测也是图像处理的重要内容。 近年来, DSP 技术的发展不断将数字信号处理领域的理论研究成果应用到实际系统中, 并且推动了新的理论和应用领域的发展, 也 对图像处理等领域的 技术发展 起到了十分重要的作用。 由于图像处理的数据量大、 计 算复杂、 数据处理相关性高,因此图像处理系统必须具有强大的运算能力。在实 际 的应用环境中,一方面,需
11、要提出更好的图像处理理论以提高系统的性能 , 如图像边缘检测理论、神经网络在图像处理中应用等 ; 另一方面需要在复杂度提高的情况下,保证系统的处理速度,达到实时性的要求,以保证系统的实际应用的价值。随着 DSP 芯片集成度、运算速度、数据吞吐率等性能的不断提高, DSP 己被广泛地应用于实时图像处理领域 3。 纵观各资料库, 有关 基于 DSP 实现的 图像 边缘检测方面的文章 还比 较少 ,所以这一课题值得 进行分析研究 ,希望 本文可以 起到抛砖引玉的作用 。 2 第 1 章 边缘检测及 BMP 位图 介绍 1.1 边缘概述 边缘是指图像中像素灰度发生空间突变的像素的集合。 根据灰度变化的
12、剧烈程度,通常将边缘划分为阶跃状 (step edge)边缘和屋顶状(roof edge)边缘两种类型。阶跃边缘 位于其 两边的 像素 灰度值 有 明显不同 的地方 ;屋顶边缘位于灰度值从增加到减少的转折处。那么,对阶跃边缘和屋顶边缘分别求取一阶、二阶导数就可以表示边缘点的变化。其 方向 导数 的 变化规律如图 1.1。 需要说明的是 ,一般 图像 的 边缘检测算法都是针对阶跃边缘提出的。利用一阶导数最大值 和 二阶导数过零点性质来得出不同算法。边缘的性质是各种边缘检测算法产生的基础。 图 1.1 两种边缘 的 方向导数 的 变化规律 3 1.2 边缘检测 边缘检测是图像处理、计算机视觉中最基
13、础的内容,也是至今仍没有得到圆满解决的一类问题。通过对人类视觉系统的研究表明,图像中的边界特别重要,往往仅凭一条粗略的轮廓线就能够识别出一个物体。这个事实为机器视觉的研究提供了重要启示,即 :物体可用其边界来表示,由图像灰度不连续点组成的基元图携带了原始图像的绝大部分有用信息 4。边缘检 测的实质是采用某种算法来提取出图像中对象与背景间的交界线。 1.3 边缘检测的重要性 图像边缘反映了图像中最有价值的信息,对边缘的检测长期以来是图像处理和计算机视觉中的最重要、最经典的课题之一。在工程应用领域中常需根据生产零件的轮廓特征来进行物体的识别。在图像检索中,对边缘特征的提取 也是正确搜索图像数据库的
14、关键。因此,正确、理想地检测图像的边缘具有良好的应用前景 。 本文研究的意义不仅仅在于检测出理想的边缘,同时为景物理解和景物分析提供了一个有价值的重要的特征参数。对视觉的中、高层处理有一定的促进作用。另外, 运动目标的识别与跟踪也是当今计算机视觉领域的一大热点,对本 文研究的各种具体的边缘检测方法,如将其应用于具体实际应用, 从而 提取 指定的目标具有重大的意义。例如通过检测图像的边缘, 可以实现车牌的定位,人脸的定位等,这为后继的车牌识别和人脸识别提供了重要的参考依据。 1.4 BMP 位图 由于本文用于边缘检测的图像是 256 色 BMP 位图,所 以必须了解它在计算机中的存储结构 形式。
15、这样才能准确读取 其 实际的位图数据,以便进一步在 CCS 中 对数据进行处理。下面就对 BMP 位图进行一下介绍。 1.4.1 BMP 位图概述 BMP 是一种 与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此, BMP 文件所占用的空间很大。 BMP文件的图像深度可选 lbit、 4bit、 8bit 及 24bit。 BMP 文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序 5。 4 1.4.2 BMP 位图的文 件结构 典型的 BMP 图像文件由四部分组成: 1 位图文件头数据结构,它包含 BMP 图像文件的类型、
16、 文件大小 等信息; 2 位图信息 头 数据结构, 包含有 BMP 图像的宽、高、压缩方法,以及定义颜色等信息; 3 调色 板,这个部分是可选的,有些位图需要调色板,有些位图 不需要调色板 ,比如真彩色图( 24 位的 BMP) ; 4 位图数据,这部分的内容根据 BMP 位图使用的位数不同而不同 。 1.4.3 BMP 位图 的数据结构 1 BMP 文件组成 BMP 文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2 BMP 文件头 (14 字节 ) BMP 文件头数据结构含有 BMP 文件的类型、文件大小和位图起始位置等信息。 其结构定义如下 : typedef struct t
17、agBITMAPFILEHEADER WORD 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 位图信息头数据用于说明位图的尺寸等信息。 其结构定义如下 :
18、typedef struct tagBITMAPINFOHEADER DWORD biSize; / 本结构所占用字节数 (14-17 字节 ) 5 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 (3
19、0-33 字节 ) DWORD biSizeImage; / 位图的大小,以字节为单位 (34-37 字节 ) LONG biXPelsPerMeter; / 位图水平分辨率,每米像素数 (38-41字节 ) LONG biYPelsPerMeter; / 位图垂直分辨率,每米像素数 (42-45字节 ) DWORD biClrUsed; / 位图实际使 用 颜色表中的颜色数 (46-49 字节 ) DWORD biClrImportant; / 位图显示过程中重要的颜色数 (50-53字节 ) BITMAPINFOHEADER; 4 颜色表 颜色表用于说明位图中的颜色,它有若干个表项,每一个
20、表项是一个 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 个表项 ; 当 b
21、iBitCount=24时,没有颜色表项。 位图信息头和颜色表组成位图信息 。 BITMAPINFO 结构定义如下 : typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader/ 位图信息头 6 RGBQUAD bmiColors1; / 颜色表 BITMAPINFO; 5 位图数据 位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右 ,扫描行之间是从下到上。位图的一个像素值所占的字节数 : 当 biBitCount=1 时, 1个像素占 1/8 个字节 ; 当 biBitCount=4 时, 1个像素占 1/2 个字节 ;
22、当 biBitCount=8 时, 1个像素占 1个字节 ; 当 biBitCount=24 时 ,1 个像素占 3个字节 ; Windows 规定一个扫描行所占的字节数必须是 4 的倍数 (即以 long 为单位 ),不足的以 0 填充 。 在数字图像处理中,许多算法就是针对 24 位真彩色位图或 8 位灰度位图设计的。 本文采用的图像是 8 位 256 色的 灰度 BMP 图像,大小 160 146,占用 24438个字节。 1.4.4本文用于边缘检测的图像 为了比较各种算法的检测结果,用于算法 评价的图像要求具有代表性 。 图像分成两大类,人工合成图像和自然真实图像。本文采用的图像如图 1.2。其中图 (a)、 (b)是人工合成的图像,图 (b)较图 (a)复杂;图 (c)为自然真实图像。 (b) (a) (c) 图 1.2 本文算法检测用图