优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

vc++简单几何图形的识别和编辑系统+论文

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

第二章 论文的工作基础和工作环境
第一节 数字图像处理技术
将客观世界实体或图片等通过不同的量化(数字化)手段送入计算机,由计算机按使用要求进行图像的平滑、增强、复原、分割、重建、编码、存储、传输等种种不同的处理,需要时把加工处理后的图像重新输出,这个过程称为图像处理。因此,图像处理的含义是用计算机对图像进行加工处理以得到某种预期的效果,它本质上是一种二维数字信号处理技术。
1. 图像处理的基本内容
图像处理的基本内容可以归结为:
1. 对图像进行增强或修改。
以改变或强调图像信息的某些特点(增强有用信息,无用信息),改善图像的视觉质量;
2. 描述图像的特征并进行特征抽取和分析。

【www.think58.com计算机毕业论文网】 内容来自think58 [资料来源:http://www.THINK58.com]


例如提取图像的纹理特征、频谱特征、边界特征和颜色特征等;对像素用某个标准衡量并进行分类比较,将抽取的特征归结为一定的模式,这属于模式识别的范围;
3. 图像的重建(Reconstruction)。
对图像的某些部分合并或进行重新组织,这种技术是从N—1维的信息用某种算法得到N维的图像,例如计算机视觉就是这样的一种技术。
2. 主要的图像处理技术
2.1 图像的增强和恢复
图像增强所追求的目标是改善图像的视觉质量,符合人们的主观要求,它不追究图像客观质量的降低原因。图像的视觉质量是因人而异的,其质量的高低和好坏受观看者的心理、爱好和文化素质等因素的影响。图像的恢复则致力于探索图像质量降低的原因,并尽可能消除图像质量的降低,恢复图像的本来面目。
2.2 图像的压缩编码
彩色数字图像通常是由三个二维数组组成的,其信息量相当大,这给图像的传输、处理、存储和显示等带来很大的负担。但问题的另一方面是图像中又往往存在很多冗余信息,在传输和存储时可以对数字图像进行一定方式的编码,删除图像中的冗余信息,以提高图像传输和存储的效率。
2.3 图像重建
在医学和工程应用中,利用超声波、x射线等技术取得物体的多幅来自不同角度的投影图,通过计算可得到物钵内部的图像,这种技术称为投影重建,例如CT就是图像重建的一个应用。 内容来自think58

[资料来源:www.THINK58.com]


2.4 图像的分割和描述
计算机按照一定的客观测度(例如灰度、颜色和几何性质等)将图像中包含的物体和区域从图像中区分出来,称为图像的分割。用适当的数学语言来表示被分割出来的物体或区域的结构和统计特性,或用数学语言表示区域问的关系,称为描述。图像经分别和描述后,可较为容易地分类和识别。
第二节 图像格式-BMP格式
BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图像处理软件都支持BMP图像文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图像文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP图像文件与显示设备无关,因此把这种BMP图像文件格式称为设备无关位图DIB(device-independent bitmap)格式,目的是为了让Windows能够在任何类型的显示设备上显示所存储的图像。BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。
文件结构
位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

内容来自think58 [来源:http://think58.com]

[资料来源:http://www.THINK58.com]

位图文件的组成 结构名称 符号
位图文件头
(bitmap-file header) BITMAPFILEHEADER bmfh
位图信息头
(bitmap-information header) BITMAPINFOHEADER bmih
彩色表(color table) RGBQUAD aColors[]
图象数据阵列字节 BYTE aBitmapBits[] think58

[资料来源:http://think58.com]

第三节 算法及数学基础
1. 霍夫变换(Hough Transform)
霍夫变换是图像处理中从图像中识别几何形状的基本方法之一。其基本思想就是把图像平面上的点对应到参数平面上的曲线,最后通过统计特性来解决问题。自1962年Hough公布了该算法以来,由于其良好的抗噪声性能和对部分遮盖的不敏感等特性,霍夫变换在模式识别领域得到广泛的应用,如直线、圆、椭圆、矩形等几何图形检测,任意形状区域的边界提取,二维或三维运动的参数估计等。
下面就于本论文相关的直线和圆的识别进行简单的介绍。
1.1 霍夫变换识别直线
霍夫变换识别直线,是将图像空间中的一点变换为参数空间中的一条直线。图像空间中同一直线上的点,经霍夫变换所形成的直线相交于参数空间中的一点,该点坐标代表图像空间中直线的斜率及截距。利用累加数组累计参数空间中通过该点的直线条数,即代表图像空间中直线上的点数。

图2.4.1 霍夫变换识别直线(1)
设已知一黑白图像上画了一条直线,要求出这条直线所在的位置。我们知道,直线的方程可以用 来表示,其中k和b是参数,分别是斜率和截距。过某一点 的所有直线的参数都会满足方程 。即图像空间中的一点 确定了参数空间中的一族直线。方程 在参数k--b平面上是一条直线。这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。 [资料来源:THINK58.com]
霍夫变换识别直线的算法描述如下:
Step1. 初始化一块缓冲区,对应于参数平面,将其所有数据置为0。
Step2. 对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。
Step3. 找到参数平面上峰值点的位置,这些位置的坐标就是原图像上直线的参数,每个位置对应于原图像上的一条直线。
上面是霍夫变换识别直线的基本思想。在实际应用中, 形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,是采用参数方程:

这样,图像平面(x, y)空间上的一个点就对应到参数 空间中的一条正弦曲线上。在变换后的空间中这条正弦曲线上的任意一点对应于原始图像平面(x, y)空间的一条直线,这条直线必通过 这个点,而(x, y)空间中所有共线的点经过变换后所对应的各正弦曲线都相交于一点。

图2.4.2 霍夫变换识别直线(2)
1.2 霍夫变换识别圆
1) 半径已知的圆的识别
利用霍夫变换检测出半径已知的圆形,是将图像平面上的每一点对应到参数平面上的一个以已知半径为半径的圆。经过霍夫变换,在参数平面上得到圆相交于一点,这个点的坐标即为原图形坐标平面上待识别的圆心坐标。
算法可以简单描述为:取和图像平面一样的参数平面,以图像上每一个前景点为圆心,以已知的半径在参数平面上画圆,并把结果进行累加。最后找出参数平面上的峰值点,这个位置就对应了图像上的圆心。

think58 [资料来源:www.THINK58.com]


2) 未知半径的圆的识别
在第一个问题基础上,把参数平面扩大称为三维空间,即x--y--R三维,对应圆的圆心和半径。图像平面上的每一点就对应于参数空间中每个半径下的一个圆,在参数的三维空间中得到一个圆锥。最后找出参数空间中的峰值点,即得到待识别的圆的圆心和半径。

内容来自think58 [来源:http://think58.com]

[资料来源:THINK58.com]

由于霍夫变换具有良好的抗噪声性能和对部分遮盖的不敏感等特性,又不受图像旋转的影响,在很多领域都有广泛的应用,有关霍夫变换的研究和改进也很多。例如广义霍夫变换、随机霍夫变换、快速霍夫变换等等,就是针对直线的霍夫变换也有很多改进算法。由于时间的原因,在本软件中,只是使用了标准的霍夫变换算法。
2. 基于单义域的直线及圆识别算法
霍夫变换为几何图形的识别的一个重要算法,但是由于该标准算法的时间复杂度和空间复杂度都是 ,其中m是参数坐标的维数,虽然有不少针对具体问题(例如直线识别)的改进算法,其在实际使用中也存在计算量大的问题。针对本论文的工作的实际情况,参考文献【1】,并进行了适当的简化,完成了论文的识别部分。下面就对这个基于单义域的识别算法进行简单的介绍。
2.1 多义域的获得
单义域是指对待识别的图形进行分割得到的具有单一的几何意义(线段或圆弧)点的集合。对图片进行从上往下、从左往右的扫描,根据交点进行分割得到多义域,多义域中的点构成一个连通区域。对多义域进行识别并分割得到单义域。
多义域由链表实现。
算法描述如下:
1. 对图形进行从上往下、从左往右的扫描;
2. 对每一个前景点,判断其是否为交点; 本文来自think58 [资料来源:http://think58.com]
3. 将该点与现有的多义域的头(如果其头节点不是交点)、尾(如果其尾节点不是交点)节点进行比较,如果与头节点相邻,将其插入到该多义域的头节点之前;如果与尾节点相邻,将其插入到该多义域的尾节点之后。
4. 如果该前景点不属于任何现有多义域,则以该点为头节点生成新的多义域。
5. 直到图形扫描完毕。
注:交点的判断。
由此得到的多义域将是一个线段、一个圆弧或者线段和圆弧的组合。在后续的识别过程中将把不是单义域的进行分裂。
内容来自think58

[资料来源:http://THINK58.com]