您现在的位置:网站首页答辩论文工学论文电子论文

数字图像圆形识别设计与实现

  • 简介:数字图像圆形识别设计与实现 (毕业设计48页、15429字)摘要:图像是人类获取和交换信息的主要来源,图像处理的应用领域必然涉及到人类生活和工作的方方面面。圆是构成图像的一个基本要素,因此,能够快速,准确地对圆进行检测,在图像处理特别是工业图像处...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载

数字图像圆形识别设计与实现 (毕业设计48页、15429字)
摘要:图像是人类获取和交换信息的主要来源,图像处理的应用领域必然涉及到人类生活和工作的方方面面。圆是构成图像的一个基本要素,因此,能够快速,准确地对圆进行检测,在图像处理特别是工业图像处理中显得尤为重要。本文所要研究的是基于HOUGH变换的圆检测,即对数字图象通过灰度变换、二值化和边缘检测后,利用HOUGH变换检测圆。通过理论分析和C#实际编程,实现了圆的检测,所做成果可以应用到精度不高的工业应用中。

关键字:C#;图像处理;圆检测;HOUGH变换

 

Digital Image Circular Recognition Design and Realization
Abstract: Image is the main source that people gain and exchange information,the application domain of image processing must relate to human life and work in all its aspects. The circle is a basic essential factor constituting the image. So it is important that detecting the circle quickly and accurately in image processing especial the industrial image processing. This paper is study of circle detection based on HOUGH transform,it is namely that digital image through the gray-scale transformation,Binary and edge detection,then through HOUGH transform withdraws detecting circle,Through theoretical analysis and the actual C# programming,which can realize detecting the circle and the results of that can be applied to the not high precision of industry applications.

Keywords: C#, image processing, detection of circle, HOUGH transformation
 

 

目  录
第1章 绪论 1
1.1 研究课题概述 1
1.2 研究意义与研究现状 1
1.3 数字图象处理概述 2
1.4 VISUAL C# 2.0 介绍 3
1.5 论文结构 6
第2章 目标图像的预处理 7
2.1 灰度变换 7
2.1.1 灰度的基本概念 7
2.1.2 灰度变换 7
2.1.3 灰度变换设计 7
2.2 二值化变 9
2.2.1 二值化的概念 9
2.2.2 二值化的基本方法 9
2.2.3 二值化的设计 10
2.3 边缘检测 13
2.3.1 图像边缘的概念 13
2.3.2 边缘检测的基本方法 13
2.3.3 边缘检测的设计——Robert算子 14
第3章 基于HOUGH变换的圆检测 16
3.1 HOUGH变换概述 16
3.2 HOUGH变换的原理 17
3.3 HOUGH变换检测圆的原理 17
3.4 基于HOUGH变换的圆检测的算法实现 18
3.4.1 程序流程图 19
3.4.2 程序代码设计 19
第4章 程序调试 24
4.1 程序运行环境介绍 24
4.1.1 Microsoft.NET介绍 24
4.1.2 Microsoft Visual Studio 2005介绍 24
4.2 程序调试 25
总    结 26
致    谢 28
参考文献 29
附录 程序及说明 30

 
第一章 绪  论
1.1 研究课题概述
图像是人类获取和交换信息的主要来源,图像处理的应用领域必然涉及到人类生活和工作的方方面面。圆是构成图像的一个基本要素,因此,能够快速,准确地对圆进行检测,在图像处理特别是工业图像处理中显得尤为重要[1]。HOUGH变换是计算机识别领域的重要变换,特别是对几何图形的识别能达到很好的效果。本文所要研究的是基于HOUGH变换的圆检测,即对数字图象通过灰度变换、二值化和边缘检测后,利用HOUGH变换检测圆,通过理论分析和C#实际编程,实现圆的检测。
1.2 研究意义与研究现状
当人在观察外面的世界时,反映在脑海的并不是杂乱无章的图像的分布,而是可分离的物体的集合,这是因为人的视觉系统会对景物进行自动提取。随着数字图像的产生,我们也希望把图像分解成可辨识的景物,这一过程就称为景物提取。本文所要研究的是数字图像圆形检测,即提取出被检测圆的一些特征值,如圆的半径及圆心所在的坐标。我们知道,圆既是一个简单的几何图形,也是构成图像的一个基本要素,在某些应用中,我们只需要将圆简单地提取出来就可以了。而在工业领域中,例如汽车零配件尺寸检查和自动装配的完整性检查,电子装配线的元件自动定位,饮料瓶口损坏检查时,对外观质量的要求非常高,图像处理的数据量大,数据处理相关性高,并且具有严格的帧和场时间限制[2]。
圆检测是机器视觉领域里经常遇到的问题,在实际工程问题中有着十分重要。相对于正方形和多边形而言,圆的特征较少,因此给圆的检测带来了一定的困难[3]。
目前,人们已经提出了多种圆检测的方法,如传统的几何方法、基于圆形边缘积分特性的环路积分微分法、基于最小二乘原理进行拟合的检测算法和模板匹配法等。HOUGH变换是检测圆的最广泛也是最有效方法之一,HOUGH变换于1962年在美国作为专利被发表至今已有三十多年了。由于具有一些明显优点,它引起了国内外许多学者和工程技术人员的普遍关注。专家们对HOUGH变换的理论性质和应用方法进行了深入广泛的研究,并取得了许多有价值的成果。HOUGH变换长期以来一直是直线检测的一种有效算法,直线上各点经过变换转换至参数空间中某一定点并在该点累积,形成参数空间中的局部最大值,从而检测到直线。但应用在圆或椭圆的检测中,参数空间的维数将扩大到三维和五维,这将耗费大量的存储空间和处理器时间。针对如何降低参数空间的维数、减少计算量,许多人提出了自己的看法,但很多算法对图像中的噪声干扰、计算的量化误差仍考虑不足。HOUGH变换的主要优点为:对于图像中的噪声点不敏感,利用其得到的结果可有效地滤除噪声的影响,以提高结果的可信度,该变换便于并行计算,计算机视觉领域的一些问题相当复杂,需要很大的计算量,并行计算是提高计算速度的有效方法。但传统的HOUGH变换有几个较大的缺陷:①计算量大,每个边缘点映射成参数空间的一个曲面(有时可简化成一条线),是一到多的映射;②占用内存大;③提取的参数受参数空间的量化间隔制约[4]。随机HOUGH变换(Randomized HOUGH Transform,RHT),克服上述缺陷,在图像空间随机选取不共线的三个点映射成参数空间的一个点,是多到一的映射,从而避免了传统HOUGH变换一到多映射的庞大计算量。为了降低内存需求,采用动态链表结构,只对多到一映射所得到的参数分配单元进行累积,从而与传统HOUGH变换相比,降低了内存需求,同时使RHT具有参数空间无限大、参数精度任意高等优点。尽管RHT只对多到一映射所得到的参数分配单元进行累积,但在处理复杂图像时,由于随机采样仍引入大量的无效单元,从而造成了大量无效累积,使算法性能降低[5]。人们又提出了一种非RHT 系列的随机圆检测( randomized  circle detection,RCD),它在中等以下的噪声比情况下检测速度较RHT快。徐志林等利用梯度信息提出了一种改进的RHT 算法,较好地解决了无效采样问题,但其对噪声较敏感。王强等提出了用链码在图像空间中分割单个圆信息,再用改进的RHT 分别检测单个圆的方法。也可以直接从图像空间中找出所有曲线段,然后再用数值方法从这些曲线段中检测出圆(或圆弧)的方法,这类方法解决了多圆检测的无效采样问题,但其时间复杂度仍然没有显著降低。
1.3 数字图象处理概述
一幅图像可以定义为一个二维函数 ,这里x和y是空间坐标,而在任何一对空间坐标(x,y)上的幅值 称为该点图像的强度或灰度。当x,y和幅值 为有限的,离散的数值时,称该图像为数字图像。数字图像处理是指借助数字计算机处理数字图像,值得提及的是数字图像是由有限的元素组成的,每一个元素都有一个特定的位置和幅值,这些元素称为图像元素,画面元素或象素[6]。数字图像处理实质就是对一幅图像的每个象素逐个进行相应的处理,而不考虑周围象素点的影响,最后整个图像就完成了处理。
   数字图像处理技术是计算机图形深入应用和高层应用的一个极其广泛的领域,它已经渗透到人们的日常生活中,它在国民经济中发挥着越来越大的作用。例如航天和航空技术,生物医学工程,通信工程,工业和工程,军事公安方面,文化艺术,道路交通管理,可视电话,网络传输等[7]。
目前,数字图像处理技术在通信科学、生产与管理、多媒体技术、高清晰度电视、医用图像处理、商品电子化和目标跟踪等领域得到了广泛的应用。随着信息高速公路,数字地球概念的提出以及Internet的广泛应用,数字图像处理技术的需要与日俱增。其中,图像信息以其信息量大,传输速度快,作用距离远等一系列优点使其成为人类获取信息的重要来源及利用信息的重要手段,因此,图像处理科学与技术逐步向其它科学领域渗透并为其他科学所利用是必然的。图像处理科学有是一门与国计民生紧密相连的应用科学,它已给人类带来了巨大的经济和社会效益,不久的将来它不仅在理论上有更深入的发展,在应用亦是科学研究,社会生产乃至人类生活中不可缺少的强有力工具。它的发展及应用与我国的现代化建设联系之密切,影响之深远是不可估量的。在信息社会中,图像处理科学无论是在理论上还是在实践上都存在着巨大的潜力。
1.4 Visual C# 2.0 介绍
在过去的二十年里,C和C++已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。与诸如Microsoft Visual Basic,等语言相比,同等级别的C/C++应用程序往往需要更长时间来开发。由于C/C++语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。
    目前有些语言,以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C++程序员所需要的。这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),其所提供的功能难以令人满意。这些语言无法方便地同早先的系统交互,也无法很好地和当前的网络编程相结合。对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,一些C/C++开发人员还需要在必要的时候进行一些底层的编程。微软推出的C#(C sharp)便是对这一问题的解决方案。
C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选,无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
C#语言从C和C++发展而来,它汲取了包括C、C++、VB和Java在内的多种语言的精华,是一种简单、完备、类型安全和完全面向对象的高级程序设计语言。它的设计目标就是在继承C 和C ++强大功能的同时,兼有RAD(Rapid  Application Development,快速应用程序开发)语言的简易和高效。作为.NET的核心编程语言,C#充分享受了公共语言运行时所提供的优势,能够与其他应用程序方便地集成和交互。因而具有以下几个突出的特点:
1、简洁的语法
C#取消了指针,也不定义烦乱的伪关键字,它使用有限的指令、修饰符和操作符,语法上几乎不存在任何冗余,整个程序结构十分清晰。初学者可以轻松快速地掌握C#的基本特性,而C和C++程序员转入C#则几乎不会有任何障碍。
2、精心的面向对象设计
C#具有面向对象的语言所应有的基本特性:封装、继承和多态性。它禁止多继承,禁止各种全局变量方法、全局变量和常量。C#以类为基础来构建所有的类型,并通过命名空间对代码进行层次化的组织和管理,减少了发生命名冲突的可能性。
3、与Web的紧密联系
借助Web服务框架,C#使得网络开发和本地开发几乎一样简单。开发人员无需了解网络的细节,可以用统一的方式来处理本地的和远程的C#对象,而C#组件能够方便地转变为Web服务,并被其他平台上的各种编程语言调用。
4、完整的安全性和错误处理
C#符合通用类型系统的类型安全性要求,并用公共语言运行时所提供的代码访问安全特性,从而能够在程序中方便地配置安全等级和用户权限。此外,垃圾收集机制自动管理对象的生命周期,开发人员无须再负担内存管理的任务,应用程序的可靠性进一步得到提高。
5、版本管理技术
C#在语言中内置了版本控制功能,并通过接口继承来实现应用的可扩展性。应用程序的维护和升级更加易于管理。
6、灵活性和兼容性
C#中允许使用非托管代码,能够与各种现有的组件和程序(包括COM组件、WIN32  API等)进行集成和交互。它还可以通过代表(delegates)来模拟指针的功能,通过接口来模拟多继承的实现。
C#则是Microsoft专门针对.NET而设计开发的高级编程语言,它在保持强大功能的同时,能够显著地提高现代软件的开发效率。C#2.0是对C#语言的一次全面升级,使用它编写的程序具有更为优越的可重用性、可维护性和灵活性。下面介绍Visual C#2.0的新增特性:
1、泛型(Generic Type)
在是从C++的模板(Templates)发展而来的一个特性,它允许在类和方法的定义中使用参数来指代抽象的数据类型,需要时可以用不同具体的数据类型来取代该参数,从而在更高层次上实现代码的可重用性,C#将类的继承机制和泛型有机地结合在一起,把面向对象的方法推向了一个新的高度,泛型的概念适用类、结构和接口,也适用于单独的方法。
2、可空类型(Nullable Type)
这是泛型的一个具体应用,它允许在变量中包括未确定的值,例如一个布尔类型的值可以是真或假,也可以未确定。这就为值类型的处理带来了更大的方便。
3、遍历器(Iterator)
允许使用foreach循环结构来遍历集合中的每个元素。遍历器所实现的功能并不复杂,但它是面向对象设计模式的一个典型应用。.NET类库采用了完美的面向对象设计,其中用到了多种设计模式,遍历器算是其中一个杰出代表。
4、匿名方法(Anonymous Method)
可以把一段代码直接作为参数使用,而无需显式地定义一个方法,这样不仅减少了编程的工作量,提高了代码的可维护性,更极大地方便了程序中的各种运算方式[8]。
1.5 论文结构
本文的组织是如下安排的:第1章,主要介绍本设计的研究动机和研究现状、数字图像处理概述、Visual C# 2.0及文本内容的组织;第2章,介绍对目标图像的预处理;第3章,基于HOUGH变换的圆形检测设计;第4章,程序调试;结论;致谢;参考文献;在结尾还附上了中英文文摘,计算程序及说明。


查看评论 已有0位网友发表了看法
  • 验证码: