毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

C++简单几何图形的识别和编辑系统设计+PPT演示 第3页

更新时间:2010-2-24:  来源:毕业论文
C++简单几何图形的识别和编辑系统设计+PPT演示 第3页
第二节 图像格式-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)和定义位图的字节阵列,它具有如下所示的形式。

位图文件的组成 结构名称 符号
位图文件头
(bitmap-file header) BITMAPFILEHEADER bmfh
位图信息头
(bitmap-information header) BITMAPINFOHEADER bmih
彩色表(color table) RGBQUAD aColors[]
图象数据阵列字节 BYTE aBitmapBits[]
第三节 算法及数学基础
1. 霍夫变换(Hough Transform)
霍夫变换是图像处理中从图像中识别几何形状的基本方法之一。其基本思想就是把图像平面上的点对应到参数平面上的曲线,最后通过统计特性来解决问题。自1962年Hough公布了该算法以来,由于其良好的抗噪声性能和对部分遮盖的不敏感等特性,霍夫变换在模式识别领域得到广泛的应用,如直线、圆、椭圆、矩形等几何图形检测,任意形状区域的边界提取,二文或三文运动的参数估计等。
下面就于本论文相关的直线和圆的识别进行简单的介绍。
1.1  霍夫变换识别直线
霍夫变换识别直线,是将图像空间中的一点变换为参数空间中的一条直线。图像空间中同一直线上的点,经霍夫变换所形成的直线相交于参数空间中的一点,该点坐标代表图像空间中直线的斜率及截距。利用累加数组累计参数空间中通过该点的直线条数,即代表图像空间中直线上的点数。
图2.4.1 霍夫变换识别直线(1)
设已知一黑白图像上画了一条直线,要求出这条直线所在的位置。我们知道,直线的方程可以用 来表示,其中k和b是参数,分别是斜率和截距。过某一点 的所有直线的参数都会满足方程 。即图像空间中的一点 确定了参数空间中的一族直线。方程 在参数k--b平面上是一条直线。这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。
霍夫变换识别直线的算法描述如下:
Step1. 初始化一块缓冲区,对应于参数平面,将其所有数据置为0。
Step2. 对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。
Step3. 找到参数平面上峰值点的位置,这些位置的坐标就是原图像上直线的参数,每个位置对应于原图像上的一条直线。
上面是霍夫变换识别直线的基本思想。在实际应用中, 形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,是采用参数方程:
这样,图像平面(x, y)空间上的一个点就对应到参数 空间中的一条正弦曲线上。在变换后的空间中这条正弦曲线上的任意一点对应于原始图像平面(x, y)空间的一条直线,这条直线必通过 这个点,而(x, y)空间中所有共线的点经过变换后所对应的各正弦曲线都相交于一点。
 图2.4.2 霍夫变换识别直线(2)
1.2  霍夫变换识别圆
1) 半径已知的圆的识别
利用霍夫变换检测出半径已知的圆形,是将图像平面上的每一点对应到参数平面上的一个以已知半径为半径的圆。经过霍夫变换,在参数平面上得到圆相交于一点,这个点的坐标即为原图形坐标平面上待识别的圆心坐标。
算法可以简单描述为:取和图像平面一样的参数平面,以图像上每一个前景点为圆心,以已知的半径在参数平面上画圆,并把结果进行累加。最后找出参数平面上的峰值点,这个位置就对应了图像上的圆心。
2) 未知半径的圆的识别
在第一个问题基础上,把参数平面扩大称为三文空间,即x--y--R三文,对应圆的圆心和半径。图像平面上的每一点就对应于参数空间中每个半径下的一个圆,在参数的三文空间中得到一个圆锥。最后找出参数空间中的峰值点,即得到待识别的圆的圆心和半径。
由于霍夫变换具有良好的抗噪声性能和对部分遮盖的不敏感等特性,又不受图像旋转的影响,在很多领域都有广泛的应用,有关霍夫变换的研究和改进也很多。例如广义霍夫变换、随机霍夫变换、快速霍夫变换等等,就是针对直线的霍夫变换也有很多改进算法。由于时间的原因,在本软件中,只是使用了标准的霍夫变换算法。
2. 基于单义域的直线及圆识别算法
霍夫变换为几何图形的识别的一个重要算法,但是由于该标准算法的时间复杂度和空间复杂度都是 ,其中m是参数坐标的文数,虽然有不少针对具体问题(例如直线识别)的改进算法,其在实际使用中也存在计算量大的问题。针对本论文的工作的实际情况,参考文献【1】,并进行了适当的简化,完成了论文的识别部分。下面就对这个基于单义域的识别算法进行简单的介绍。
2.1  多义域的获得
单义域是指对待识别的图形进行分割得到的具有单一的几何意义(线段或圆弧)点的集合。对图片进行从上往下、从左往右的扫描,根据交点进行分割得到多义域,多义域中的点构成一个连通区域。对多义域进行识别并分割得到单义域。
多义域由链表实现。
算法描述如下:
1. 对图形进行从上往下、从左往右的扫描;
2. 对每一个前景点,判断其是否为交点;
3. 将该点与现有的多义域的头(如果其头节点不是交点)、尾(如果其尾节点不是交点)节点进行比较,如果与头节点相邻,将其插入到该多义域的头节点之前;如果与尾节点相邻,将其插入到该多义域的尾节点之后。
4. 如果该前景点不属于任何现有多义域,则以该点为头节点生成新的多义域。
5. 直到图形扫描完毕。
注:交点的判断。
由此得到的多义域将是一个线段、一个圆弧或者线段和圆弧的组合。在后续的识别过程中将把不是单义域的进行分裂。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

C++简单几何图形的识别和编辑系统设计+PPT演示 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。