如何设计一个有意义的几何图形意义

简单几何图形意义的识别和编辑設计,机械毕业设计 简单几何图形意义的识别和编辑 - 1 - 简单几何图形意义的识别和编辑 - 2 - 内容摘要 本论文主要讲述了图像文件( bmp)文件格式下中簡单图形的识别主要是直线和圆的识别,这在工程图的识别和其他领域中都有很多的应用 第一章到第三章主要介绍了在本论文中涉及箌的知识及算法。 第四章是程序的实现方法和过程及结果等 第五章是结束语 关键词 简单几何图形意义的识别和编辑 - 6 - 第一章 概述 第一节 引訁 计算机技术的发展,使人类社会进入了信息化和自动化计算机智能识别也随着计算机的发展得到了迅速的发展。特别是图形图像的计算机处理技术更是有了前所未有的进步和应用计算机识别也逐渐的从图形图像处理的大环境下分离出来作为一门新的高科技研究领域出現。图形图像的识别涉及到的学科很多包括数字信号处理、工程数学、信息论、运筹学、等,它与计算机、自动化、生物学、关学、视覺心里和生理学、人工智能、智能信息处理等众多领域交叉、综合集成有广泛的应用。 本论文实现的是基础的图形识别 bmp 图像文件格式 Φ对图形的矢量化。识别基本的图元直线和圆直线和圆是二值图像中最基本的组成元素,也是最常见的图形元素在工程图的数字化识別中有很大的应用。 关于理想情况的几点说明 1. 所识别的 bmp 图像文件是经过处理的没有“噪音”等,在本论文中直接采用的是用 Windows 中的画图软件画出的图像 2. 本论文中图像中的图元都是单一的线性,即线宽是一个象素的情况 第二节 在工程图的识别中常用的方法 图形的识别最主偠的是图形特征的提取,在这个阶段常用的方法是全局特征方法(包括不变距,自回归模型、傅立叶描述符、霍夫变换等)全局特征嘚 特征提取方法是理论比较完善的,计算过程比较清楚针对不同的特征提取处理,采用相对应的模式匹配方法来将图形分类模式识别迄今已有很多方法,有模板匹配、统计模式识别、句法模式识别、模糊识别和神经网络识别等 在二值图像的处理中,人们常用的数据结果有游程编码-考虑了扫描行上相邻象素间的相关性;行相邻图法( Line Adjeceney Gragh)是由 Pavlidis 提简单几何图形意义的识别和编辑 - 7 - 出的一种二值图的数据结構, LAG 还考虑了相邻行黑游程之间的相邻关系遍历时很方便; BAG( Bloek Adjeceney Gragh)是由余斌提出 的,它是相邻图 LAG在两个方向上的推广在本论文中就是利鼡了 LAG 的数据结构思想与 c builder 的数据结构相结合的方法即用下一个象素点是与链表头相邻还是和尾相邻来描述其相邻的关系。 本论文中对交点的處理目前对交点的处理有下面几类算法 1. 基于网格算法,该算法是通过网格加大搜索步长来跳过交点 2. 基于图段合并的算法,是根据交点處行程段的连通性以交点为界将图线分割成图段,记录各段之间的连接及从属关系然后连接或延长各分支图段,然后得到整条图线 茬本论文中采用了第二种方法,基于图段合并的算法 当然 现下有很多更好的算法和数据结构,但是大部分是针对具体的结构或者研究方姠不具有一般性所以本论文的实现用了上述的数据结构和方法。 简单几何图形意义的识别和编辑 - 8 - 第二章 论文的工作基础和工作环境 第一節 数字图像处理技术 将客观世界实体或图片等通过不同的量化 数字化 手段送入计算机由计算机按使用要求进行图像的平滑、增强、复原、分割、重建、编码、存储、传输等种种不同的处理,需要时把加工处理后的图像重新输出这个过程称为图像处理。因此图像处理的含义是用计算机对图像进行加工处理以得到某种预期的效果,它本质上是一种二维数字信号处理技术 1. 图像处理的基本内容 图像处理的基夲内容可以归结为 1. 对图像进行增强或修改。 以改变或强调图像信息的某些特点 增强有用信息无用信息 ,改善图像的视觉质量; 2. 描述图像嘚特征并进行特征抽取和分析 例如提取图像的纹理特征、频谱特征、边界特征和颜色特征等;对像素用某个标准衡量并进行分类比较,將抽取的特征归结为一定的模式这属于模式识别的范围; 3. 图像的重建 Reconstruction。 对图像的某些部分合并或进行重新组织这种技术是从 N 1 维的信息鼡某种算法得到 N 维的图像,例如计算机视觉就是这样的一种技术 2. 主要的图像处理技术 2.1 图像的增强和恢复 图像增强所追求的目标是改善图潒的视觉质量,符合人们的主观要求它不追究图像客观质量的降低原因。图像的视觉质量是因人而异的其质量简单几何图形意义的识別和编辑 - 9 - 的高低和好坏受观看者的心理、爱好和文化素质等因素的影响。图像的恢复则致力于探索图像质量降低的原因并尽可能消除图潒质量的降低,恢复图像的本来面目 2.2 图像的压缩编码 彩色数字图像通常是由三个二维数组组成的,其信息量相当大这给图像的传输、處理、存储和显示等带来很大的负担。但问题的另一方面是图像中又往往存在很多冗余信息在传输和存储时可以对数字图像进行一定方式的编码, 删除图像中的冗余信息以提高图像传输和存储的效率。 2.3 图像重建 在医学和工程应用中利用超声波、 x 射线等技术取得物体的哆幅来自不同角度的投影图,通过计算可得到物钵内部的图像这种技术称为投影重建,例如 CT 就是图像重建的一个应用 2.4 图像的分割和描述 计算机按照一定的客观测度 例如灰度、颜色和几何性质等 将图像中包含的物体和区域从图像中区分出来,称为图像的分割用适当的数學语言来表示被分割出来的物体或区域的结构和统计特性,或用数学语言表示区域问的关系称为描述。图像经分别和描述后可较为容噫地分类和识别。 第二节 图像格 式- BMP 格式 BMPBitmap-File图形文件是 Windows 采用的图形文件格式在 Windows环境下运行的所有图像处理软件都支持 BMP 图 像 图像文件格式称為设备无关位图DIBdevice-independent bitmap格式,目的是为了让 Windows 能够在任何类型的显示设备上显示所存储的图像 BMP 位图文件默认的文件扩展名是 BMP 或者 bmp(有时它也会以 .DIB 戓 .RLE 作扩展名)。 简单几何图形意义的识别和编辑 - 10 - ? 文件结构 位图文件可看成由 4 个部分组成位图文件头 BITMAPINFOHEADER bmih 彩色表 color table RGBQUAD aColors[] 图象数据阵列字节 BYTE aBitmapBits[] 第三节 算法忣数学基础 1. 霍夫变换( Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一其基本思想就是把图像平面上的点对应到参数平媔上的曲线,最后通过统计特性 来解决问题自 1962 年 Hough 公布了该算法以来,由于其良好的抗噪声性能和对部分遮盖的不敏感等特性霍夫变换茬模式识别领域得到广泛的应用,如直线、圆、椭圆、矩形等几何图形意义检测任意形状区域的边界提取,二维或三维运动的参数估计等 下面就于本论文相关的直线和圆的识别进行简单的介绍。 简单几何图形意义的识别和编辑 - 11 - 1.1 霍夫变换识别直线 霍夫变换识别直线是将圖像空间中的一点变换为参数空间中的一条直线。图像空间中同一直线上的点经霍夫变换所形成的直线相交于参数空间中的一点,该点唑标代表图像空间中直线的斜率及截距利用累加数组累计参数空间中通过该 点的直线条数,即代表图像空间中直线上的点数 图 2.4.1 霍夫变換识别直线( 1) 设已知一黑白图像上画了一条直线,要求出这条直线所在的位置我们知道,直线的方程可以用 y k x b? ? ? 来表示其中 k 和 b 是參数,分别是斜率和截距过某一点00 , xy的所有直线的参数都会满足方程00y k x b? ? ?。即图像空间中的一点00 , xy确定了参数空间中的一族直 线方程00y k x b? ? ?在参数 k--b 平面上是一条直线。这样图像 x--y 平面上的一个前景像素点就对应到参数平面上的一条直线。 霍夫变换识别直线的算法描述如下 Step1. 初始化一块缓冲区对应于参数平面,将其所有数据置为 0 Step2. 对于图像上每一前景点,求出参数平面对应的直线把这直线上的所有点的值嘟加1。 Step3. 找到参数平面上峰值点的位置这些位置的坐标就是原图像上直线的参数,每个位置对应于原图像上的一条直线 上面是霍夫变換识别直线的基本思想。 在实际应用中 y k x b? ? ? 形式的直线方程没有办法表示 xc 形式的直线(这时候,直线的斜率为无穷大)所以实际应鼡中,是采用参数方程 c o s s i nxy? ? ??? 这样图像平面 x, y空间 上的一个点就对应到参数 ? ? 空间中的一条正弦曲线上 。 在变换后的空间中这条正弦曲线上的任意一点对应于原始 图像平面 x, y空简单几何图形意义的识别和编辑 - 12 - 间的一条直线这条直线必通过 , iixy这个点,而 x, y空间中所有共线的點经过变换后所对应的各正弦曲线都相交于一点 图 2.4.2 霍夫变换识别直线( 2) 1.2 霍夫变换识别圆 1) 半径已知的圆的识别 利用霍夫变换检测出半徑已知的圆形,是将图像平面上的每一点对应到参数平面上的一个以已知半径为半径的圆经过霍夫变换,在参数平面上得到圆相交于一點这个点的坐标即为原图形坐标平面上待识别的圆心坐标。 算法可以简单描述为取和图像平面一样的参数平面以图像上每一个前景点為圆心,以已知的半径在参 数平面上画圆并把结果进行累加。最后找出参数平面上的峰值点这个位置就对应了图像上的圆心。 2) 未知半径的圆的识别 在第一个问题基础上把参数平面扩大称为三维空间,即 x--y--R 三维对应圆的圆心和半径。图像平面上的每一点就对应于参数涳间中每个半径下的一个圆在参数的三维空间中得到一个圆锥。最后找出参数空间中的峰值点即得到待识别的圆的圆心和半径。 由于霍夫变换具有良好的抗噪声性能和对部分遮盖的不敏感等特性又不受图像旋转的影响,在很多领域都有广泛的应用有关霍夫变换的研究和改进也很多。例如广义霍夫变 换、随机霍夫变换、快速霍夫变换等等就是针对直线的霍夫变换也有很多改进算法。由于时间的原因在本软件中,只是使用了标准的霍夫变换算法 简单几何图形意义的识别和编辑 - 13 - 2. 基于单义域的 直线 及圆识别算法 霍夫变换为几何图形意義的识别的一个重要算法,但是由于该标准算法的时间复杂度和空间复杂度都是 mON 其中 m 是参数坐标的维数,虽然有不少针对具体问题(例洳直线识别)的改进算法其在实际使用中也存在计算量大的问题。针对本论文的工作的实际情况参考文献【 1】,并进行了适当的简化完成了论文的识别部分。下面就对 这个基于单义域的识别算法进行简单的介绍 2.1 多义域的获得 单义域是指对待识别的图形进行分割得到嘚具有单一的几何意义(线段或圆弧)点的集合。对图片进行从上往下、从左往右的扫描根据交点进行分割得到多义域,多义域中的点構成一个连通区域对多义域进行识别并分割得到单义域。 多义域由链表实现 算法描述如下 1. 对图形进行从上往下、从左往右的扫描; 2. 对每一个前景点,判断其是否为交点; 3. 将该点与现有的多义域的头(如果其头节点不是交点)、尾(如果其尾节点不是交点)节点进荇比较如果与头节点相邻,将其插入到该多义域的头节点之 前;如果与尾节点相邻将其插入到该多义域的尾节点之后。 4. 如果该前景點不属于任何现有多义域则以该点为头节点生成新的多义域。 5. 直到图形扫描完毕 注交点的判断。 由此得到的多义域将是一个线段、┅个圆弧或者线段和圆弧的组合在后续的识别过程中将把不是单义域的进行分裂。 简单几何图形意义的识别和编辑 - 14 - 2.2 最小二乘法拟合直线囷圆 最小二乘法首先由 Karl Gauss 为进行行星轨道预测的研究而提出的现在最小二乘法已经变成从实验数据来进行参数估计的主要手段。由最小二塖法获得的估计在一定条件下有最佳的统计特性一致、无偏、有效它提供给我们一个数学程 式,通过它能获得一个在最小方差意义上与實验数据最好拟合助模型 运用最小二乘法进行圆的拟合公式如下 其中, , iixy为样点00 , xy为所求圆心, 为半径 为平均径向误差, 为最大径向误差 运用最小二乘法进行直线拟合的公式如下 (待填充) 简单几何图形意义的识别和编辑 - 15 - 2.3 多义域分裂和单义域的识别 对 2.1 中得到的多义域,運用最小二乘法进行拟合对于拟合不成功的多义域运用 首尾相连最大距离法 进行 分裂 ,得到单义域并记录下各单义域的拟合结果,供铨局考虑识别直线和圆用。 算法描述如下 1. 从 2.1 得到的多义域列表里取第一个多义域; 2. 对选中的多义域 运用最小二乘法进行圆的拟合;洳果得到的平均径向误差和最大径向误差小于指定阈值则认为拟合成功,该多义域为一圆弧的单义域;记录拟合的结果作为总体识别嘚种子圆,转向 5 执行否则执行 3。 3. 对选中的多义域运用最小二乘法进行直线拟合;如果得到的平均距离误差和最大距离误差小于指定阈徝则认为拟合成功,该多义域为一线段的单义域;记录拟合结果作为总体识别的种子直线,转向 5 执行否则执行 4。 4. 该多义域为多个線段或圆弧的组合将该多义域的头尾节点连接,计算该多义域中各点与头尾节点连线的距离取距离最大的点,对该多义域进行分 裂嘚到两个新的多义域,取代原先的多义域;转向 2 执行 5. 取多义域列表中的下一个,转向 2 执行 由此,所有的多义域都分裂为单义域并對各单义域进行了拟合。 2.4 总体整合识别直线和圆 对 2.3 得到的单义域列表进行总体的整合,得到直线和圆 1. 选取单义域列表中的第一个单義域,将其拟合的图形(直线或圆)作为种子图形; 2. 将列表中其他单义域的识别结果与种子图形进行比较如果误差小于指定阈值,则屬于同一直线或同一圆将其与选定单一域进行合并,从列表中删除该单义域; 3. 计算选定单义域的几何数据得到图形; 4. 选取列表中嘚下一个单义 域,转动 2 执行 简单几何图形意义的识别和编辑 - 16 - 3. 主要技术 3.1 Borland C Builder 本论文的编程环境之所以选用 c builder 是因为他有以下的优点 ⑴.输出入接ロ设计简单 ⑵.提供一流的开发环境 ⑶.提供最标准的 C/ C++鲁开发工具 ⑷.提供丰富的组件与最强劲的调试工具 VCL 类库中封装了 Windows 的图形设備接口 GDI,使得用户很方便地在应用程序添加图像或处理图像 图像类主要有 Tbitmap、 TBrush、 TCanves、 TFont、 TgraphakControl、 Tgraphic、Ticon、 TJPEGImage、 TPen 和 Tpictur 以 Tmatifile 类。 3.2 虚类及虚方法的使用 虚类和虚方法嘚使用在本论文中主要是 Cshapes 基类及虚方法的实现 简单几何图形意义的识别和编辑 - 17 - 第三章 直线和圆的识别和编辑的实现 第一节 系统的层次结構的图示 简单几何图形意义的识别和编辑 - 18 - 第二节 系统数据结构及类的设计 1. 主要类的层次结构 1.1 图形处理类 1.2 识别用类 简单几何图形意义的识别囷编辑 - 19 - 2. 图形基类( CShape) 2.1 描述 图形基类,提供所有图形的标准属性和方法其他图形类(直线、圆)等都是该类的子类,继承其所有的 public 属性和方法对其中的虚方法( virtual)进行重定义和实现。 该类为虚类其成员 函数主要为虚函数,为其所有子类提供统一的接口但是没有实现。其他模块对图形进行操作时除非生成新的实例( Instance),都无须知道所操作的是哪个具体的图形而统一使用 Cshape 类型,为程序的实现、扩充和維护提供很大方便 2.2 实现 class CShape { public /* 属性定义 */ //前景色(由于时间等的限制,本系统暂时只定义该图形的属性其 // 他如填充色,线条型填充型等可扩充) TColor color; /* 编辑用属性 */ //编 辑时标志该图形是否被选择 bool isSelected; //编辑操作所选中的点 TPoint * editP /* 识别用属性 */ // 识别的效果描述,值越小说明识别效果越好 // 最小二乘法的平均误差; // 霍夫变换 1 - 参数空间中该图形的值 /最大值 double 3. 图形类( CLine、 CCircle) 3.1 描述 图形类是几何图形意义的具体实现实现对应几何图形意义的描述和相關操作。图形类有共同的父类 CShape对父类中定义的虚方法根据本几何图形意义的特征进行实现。 根据要求本系统中实现了直线( CLine)和圆( CCircle)两个图形类。其他简单的几何图形意义如椭圆、矩形等也可以类似的方法实现作为本系统的一个扩充。 本系统中直线类采用直观的 0A x B y C? ? ? 的形式来描述直线(既避免点斜式不能描述竖直直 线,也避免极坐标方程转换的问题)因为成比例的两组1 1 1 , , A B C 和 2 2 2 , , A B C 表示同一条直线,所鉯规定如果 B 参数不为 0,则 1B ? 否则 A 必定不为 0,则 1A? 由于要识别图像中的线段,所以增加两个端点进行限制 直线类有三个点可以编辑 1)两个端点,选中一个端点并移动是以另一端点为轴进行旋转; 2)线段的中点,选中中点并移动是平移 整个直线。 圆类采用 2 2 2 ccx x y y R? ? ? ?嘚形式描述(其中 , ccxy为圆心 R 为半径),直观方便圆上有两个点支持编辑操作 1)圆心,选中圆心并移动是平移整个圆; */ bool isCrossPoint; }; 6. 单义域类( CSegment) 6.1 描述 在“基于单义域的图形识别算法”中,单义域和多义域的唯一区别就是多义域不是单一的几何元素其在存储结构上是一样的,在本系統中都由CSegment 类实现,姑且命名为单义域类 单义域类为点的 集合类,由 C Builder 的 TList recognize; /* 尝试添加新 的点到该单义域 */ // 判断该点是否属于该单义域并确定是茬头部还是在尾部并将其插入到适当位置;如果该点为交点,则将相应的方向关闭增长;若加入成功返回 True否则返回 False。 bool addNewPoint; 简单几何图形意義的识别和编辑 - 24 - /* 判断该单义域是否有识别价值 */ // 基于单义域识别类是实现“基于单义域的直线和圆识别算法”的主要类它实现了对目标图潒的分割、对分割结果的显示、对识别得到的多义域进行分割、对单义域识别结果的总体考虑,最终得到识别结果集 基于单义域识别类哃时是单义域的集合类,由 C Builder 的 TList 类继承得到用来组织对图像的单义域分割后的结果。 7.2 实现 class CSegments public TList Trans-ling recognize 得到识别出的直线的霍夫变换图,图中的每个煷点代表一条直线; 识别的圆的概率圆在下面的 Edit 控件中是你想要显示的圆的直径,输入后点 display 后就可以看到霍夫变换的结果 注由于霍夫变換是一个三维的循环消耗内存较多,速度较慢所以图像的原图的大小直接影响到速度。 下面是几幅 图象的实验结果 图 4.1 只含有直线的 bpm 文件 就是识别出的直线和圆的相关信息 Line0 中的 P1,P2 是指直线的两个端点坐标、 chance 和 count 是对点的总体统计参数 Circle1 中的 Center、 r 分别是圆的圆心和半径坐标 第五节 總结及展望 简单几何图形意义的识别和编辑 - 31 - 第四章 结束语 在当今高科技发展的环境下,图像处理的需求和应用愈来愈广泛技术亦愈来愈高,本人通过本论文的编写及实现过程对图像处理和模式识别有了很多的理解和更深刻的认识 综上所述,本系统达到了预期的目标并具有很大的扩展性。 经过必要的完善和补充将可以成为一个实用的工具。 简单几何图形意义的识别和编辑 - 32 - 致谢 在论文的开始请允许我姠所有在本论文的撰写过程中,在我这两年的学习和生活中给予我帮助和关心的老师、同学表示诚挚的谢意 特别是指导老师 ***,从论文的選题、材料的组织以及各个阶段的指导思想都给予了耐心的指导 同时,天文与应用物理系的 ***老师也给予了我无私的帮助在这里一并感謝。 简单几何图形意义的识别和编辑 - 33 - 参考文献 1. “ 基于单义域邻接图的圆弧与圆识别 ” 中国图像图形学报 ~74 2. 王耀南、李书涛、毛建旭 计算機图像处理与识别技术 高等教育出版社 3. 阮球琦数字图像处理学 电子工业出版社 4. 夏德深、傅德胜现代图像处理与应用东南大学出版社 5. 系统辨識-最小二乘原理 6. 朱时银 c builder 编程实例与技巧 机械工业出版社 7. From Raster to Vectors Extracting

简单几何图形意义的识别和编辑 - 1 - 简单几何图形意义的识别和编辑 - 2 - 内容摘要 本论文主要讲述了图像文件( bmp)文件格式下中简单图形的识别,主要是直线和圆的识别这在工程图的识别和其他领域中都有很多的应用。 第一嶂到第三章主要介绍了在本论文中涉及到的知识及算法 第四章是程序的实现方法和过程及结果等。 第五章是结束语 关键词 图形识别 计算機技术的发展使人类社会进入了信息化和自动化,计算机智能识别也随着计算机的发展得到了迅速的发展特别是图形图像的计算机处悝技术更是有了前所未有的进步和应用。计算机识别也逐渐的从图形图像处理的大环境下分离出来作为一门新的高科技研究领域出现图形图像的识别涉及到的学科很多,包括数字信号处理、工程数学、信息论、运筹学、等它与计算机、自动化、生物学、关学、视觉心里囷生理学、人工智能、智能信息处理等众多领域交叉、综合集成,有广泛的应用 本论文实现的是基础的图形识别, bmp 图像文件格式 中对图形的矢量化识别基本的图元直线和圆。直线和圆是二值图像中最基本的组成元素也是最常见的图形元素。在工程图的数字化识别中有佷大的应用 关于理想情况的几点说明 1. 所识别的 bmp 图像文件是经过处理的,没有“噪音”等在本论文中直接采用的是用 Windows 中的画图软件画出嘚图像。 2. 本论文中图像中的图元都是单一的线性即线宽是一个象素的情况。 第二节 在工程图的识别中常用的方法 图形的识别最主要的是圖形特征的提取在这个阶段,常用的方法是全局特征方法(包括不变距自回归模型、傅立叶描述符、霍夫变换等),全局特征的 特征提取方法是理论比较完善的计算过程比较清楚。针对不同的特征提取处理采用相对应的模式匹配方法来将图形分类,模式识别迄今已囿很多方法有模板匹配、统计模式识别、句法模式识别、模糊识别和神经网络识别等。 在二值图像的处理中人们常用的数据结果有游程编码-考虑了扫描行上相邻象素间的相关性;行相邻图法( Line Adjeceney Gragh),是由 Pavlidis 提简单几何图形意义的识别和编辑 - 7 - 出的一种二值图的数据结构 LAG 还栲虑了相邻行黑游程之间的相邻关系,遍历时很方便; BAG( Bloek Adjeceney Gragh)是由余斌提出 的它是相邻图 LAG在两个方向上的推广。在本论文中就是利用了 LAG 的數据结构思想与 c builder 的数据结构相结合的方法即用下一个象素点是与链表头相邻还是和尾相邻来描述其相邻的关系 本论文中对交点的处理。目前对交点的处理有下面几类算法 1. 基于网格算法该算法是通过网格加大搜索步长来跳过交点。 2. 基于图段合并的算法是根据交点处行程段的连通性,以交点为界将图线分割成图段记录各段之间的连接及从属关系,然后连接或延长各分支图段然后得到整条图线。 在本论攵中采用了第二种方法基于图段合并的算法。 当然 现下有很多更好的算法和数据结构但是大部分是针对具体的结构或者研究方向不具囿一般性,所以本论文的实现用了上述的数据结构和方法 简单几何图形意义的识别和编辑 - 8 - 第二章 论文的工作基础和工作环境 第一节 数字圖像处理技术 将客观世界实体或图片等通过不同的量化 数字化 手段送入计算机,由计算机按使用要求进行图像的平滑、增强、复原、分割、重建、编码、存储、传输等种种不同的处理需要时把加工处理后的图像重新输出,这个过程称为图像处理因此,图像处理的含义是鼡计算机对图像进行加工处理以得到某种预期的效果它本质上是一种二维数字信号处理技术。 1. 图像处理的基本内容 图像处理的基本内容鈳以归结为 1. 对图像进行增强或修改 以改变或强调图像信息的某些特点 增强有用信息,无用信息 改善图像的视觉质量; 2. 描述图像的特征並进行特征抽取和分析。 例如提取图像的纹理特征、频谱特征、边界特征和颜色特征等;对像素用某个标准衡量并进行分类比较将抽取嘚特征归结为一定的模式,这属于模式识别的范围; 3. 图像的重建 Reconstruction 对图像的某些部分合并或进行重新组织,这种技术是从 N 1 维的信息用某种算法得到 N 维的图像例如计算机视觉就是这样的一种技术。 2. 主要的图像处理技术 2.1 图像的增强和恢复 图像增强所追求的目标是改善图像的视覺质量符合人们的主观要求,它不追究图像客观质量的降低原因图像的视觉质量是因人而异的,其质量简单几何图形意义的识别和编輯 - 9 - 的高低和好坏受观看者的心理、爱好和文化素质等因素的影响图像的恢复则致力于探索图像质量降低的原因,并尽可能消除图像质量嘚降低恢复图像的本来面目。 2.2 图像的压缩编码 彩色数字图像通常是由三个二维数组组成的其信息量相当大,这给图像的传输、处理、存储和显示等带来很大的负担但问题的另一方面是图像中又往往存在很多冗余信息,在传输和存储时可以对数字图像进行一定方式的编碼 删除图像中的冗余信息,以提高图像传输和存储的效率 2.3 图像重建 在医学和工程应用中,利用超声波、 x 射线等技术取得物体的多幅来洎不同角度的投影图通过计算可得到物钵内部的图像,这种技术称为投影重建例如 CT 就是图像重建的一个应用。 2.4 图像的分割和描述 计算機按照一定的客观测度 例如灰度、颜色和几何性质等 将图像中包含的物体和区域从图像中区分出来称为图像的分割。用适当的数学语言來表示被分割出来的物体或区域的结构和统计特性或用数学语言表示区域问的关系,称为描述图像经分别和描述后,可较为容易地分類和识别 第二节 图像格 式- BMP 格式 BMPBitmap-File图形文件是 Windows 采用的图形文件格式,在 Windows环境下运行的所有图像处理软件都支持 BMP 图 图像文件格式称为设备无關位图DIBdevice-independent bitmap格式目的是为了让 Windows 能够在任何类型的显示设备上显示所存储的图像。 BMP 位图文件默认的文件扩展名是 BMP 或者 bmp(有时它也会以 .DIB 或 .RLE 作扩展洺) 简单几何图形意义的识别和编辑 - 10 - ? 文件结构 位图文件可看成由 4 个部分组成位图文件头 来解决问题。自 1962 年 Hough 公布了该算法以来由于其良好的抗噪声性能和对部分遮盖的不敏感等特性,霍夫变换在模式识别领域得到广泛的应用如直线、圆、椭圆、矩形等几何图形意义检測,任意形状区域的边界提取二维或三维运动的参数估计等。 下面就于本论文相关的直线和圆的识别进行简单的介绍 简单几何图形意義的识别和编辑 - 11 - 1.1 霍夫变换识别直线 霍夫变换识别直线,是将图像空间中的一点变换为参数空间中的一条直线图像空间中同一直线上的点,经霍夫变换所形成的直线相交于参数空间中的一点该点坐标代表图像空间中直线的斜率及截距。利用累加数组累计参数空间中通过该 點的直线条数即代表图像空间中直线上的点数。 图 2.4.1 霍夫变换识别直线( 1) 设已知一黑白图像上画了一条直线要求出这条直线所在的位置。我们知道直线的方程可以用 y k x b? ? ? 来表示,其中 k 和 b 是参数分别是斜率和截距。过某一点00 , xy的所有直线的参数都会满足方程00y k x b? ? ?即图像空间中的一点00 , xy确定了参数空间中的一族直 线。方程00y k x b? ? ?在参数 k--b 平面上是一条直线这样,图像 x--y 平面上的一个前景像素点就对应到參数平面上的一条直线 霍夫变换识别直线的算法描述如下 Step1. 初始化一块缓冲区,对应于参数平面将其所有数据置为 0。 Step2. 对于图像上每一前景点求出参数平面对应的直线,把这直线上的所有点的值都加1 Step3. 找到参数平面上峰值点的位置,这些位置的坐标就是原图像上直线的參数每个位置对应于原图像上的一条直线。 上面是霍夫变换识别直线的基本思想 在实际应用中, y k x b? ? ? 形式的直线方程没有办法表示 xc 形式的直线(这时候直线的斜率为无穷大)。所以实际应用中是采用参数方程 c o s s i nxy? ? ??? 这样,图像平面 x, y空间 上的一个点就对应到参數 ? ? 空间中的一条正弦曲线上 在变换后的空间中这条正弦曲线上的任意一点对应于原始 图像平面 x, y空简单几何图形意义的识别和编辑 - 12 - 间嘚一条直线,这条直线必通过 , iixy这个点而 x, y空间中所有共线的点经过变换后所对应的各正弦曲线都相交于一点。 图 2.4.2 霍夫变换识别直线( 2) 1.2 霍夫变换识别圆 1) 半径已知的圆的识别 利用霍夫变换检测出半径已知的圆形是将图像平面上的每一点对应到参数平面上的一个以已知半径為半径的圆。经过霍夫变换在参数平面上得到圆相交于一点,这个点的坐标即为原图形坐标平面上待识别的圆心坐标 算法可以简单描述为取和图像平面一样的参数平面,以图像上每一个前景点为圆心以已知的半径在参 数平面上画圆,并把结果进行累加最后找出参数岼面上的峰值点,这个位置就对应了图像上的圆心 2) 未知半径的圆的识别 在第一个问题基础上,把参数平面扩大称为三维空间即 x--y--R 三维,对应圆的圆心和半径图像平面上的每一点就对应于参数空间中每个半径下的一个圆,在参数的三维空间中得到一个圆锥最后找出参數空间中的峰值点,即得到待识别的圆的圆心和半径 由于霍夫变换具有良好的抗噪声性能和对部分遮盖的不敏感等特性,又不受图像旋轉的影响在很多领域都有广泛的应用,有关霍夫变换的研究和改进也很多例如广义霍夫变 换、随机霍夫变换、快速霍夫变换等等,就昰针对直线的霍夫变换也有很多改进算法由于时间的原因,在本软件中只是使用了标准的霍夫变换算法。 简单几何图形意义的识别和編辑 - 13 - 2. 基于单义域的 直线 及圆识别算法 霍夫变换为几何图形意义的识别的一个重要算法但是由于该标准算法的时间复杂度和空间复杂度都昰 mON ,其中 m 是参数坐标的维数虽然有不少针对具体问题(例如直线识别)的改进算法,其在实际使用中也存在计算量大的问题针对本论攵的工作的实际情况,参考文献【 1】并进行了适当的简化,完成了论文的识别部分下面就对 这个基于单义域的识别算法进行简单的介紹。 2.1 多义域的获得 单义域是指对待识别的图形进行分割得到的具有单一的几何意义(线段或圆弧)点的集合对图片进行从上往下、从左往右的扫描,根据交点进行分割得到多义域多义域中的点构成一个连通区域。对多义域进行识别并分割得到单义域 多义域由链表实现。 算法描述如下 1. 对图形进行从上往下、从左往右的扫描; 2. 对每一个前景点判断其是否为交点; 3. 将该点与现有的多义域的头(如果其头节点不是交点)、尾(如果其尾节点不是交点)节点进行比较,如果与头节点相邻将其插入到该多义域的头节点之 前;如果与尾节點相邻,将其插入到该多义域的尾节点之后 4. 如果该前景点不属于任何现有多义域,则以该点为头节点生成新的多义域 5. 直到图形扫描完毕。 注交点的判断 由此得到的多义域将是一个线段、一个圆弧或者线段和圆弧的组合。在后续的识别过程中将把不是单义域的进行汾裂 简单几何图形意义的识别和编辑 - 14 - 2.2 最小二乘法拟合直线和圆 最小二乘法首先由 Karl Gauss 为进行行星轨道预测的研究而提出的。现在最小二乘法巳经变成从实验数据来进行参数估计的主要手段由最小二乘法获得的估计在一定条件下有最佳的统计特性一致、无偏、有效。它提供给峩们一个数学程 式通过它能获得一个在最小方差意义上与实验数据最好拟合助模型。 运用最小二乘法进行圆的拟合公式如下 其中 , iixy为样點,00 , xy为所求圆心 为半径 , 为平均径向误差 为最大径向误差 。 运用最小二乘法进行直线拟合的公式如下 (待填充) 简单几何图形意义的識别和编辑 - 15 - 2.3 多义域分裂和单义域的识别 对 2.1 中得到的多义域运用最小二乘法进行拟合,对于拟合不成功的多义域运用 首尾相连最大距离法 進行 分裂 得到单义域,并记录下各单义域的拟合结果供全局考虑,识别直线和圆用 算法描述如下 1. 从 2.1 得到的多义域列表里取第一个哆义域; 2. 对选中的多义域 运用最小二乘法进行圆的拟合;如果得到的平均径向误差和最大径向误差小于指定阈值,则认为拟合成功该哆义域为一圆弧的单义域;记录拟合的结果,作为总体识别的种子圆转向 5 执行,否则执行 3 3. 对选中的多义域运用最小二乘法进行直线擬合;如果得到的平均距离误差和最大距离误差小于指定阈值,则认为拟合成功该多义域为一线段的单义域;记录拟合结果,作为总体識别的种子直线转向 5 执行,否则执行 4 4. 该多义域为多个线段或圆弧的组合。将该多义域的头尾节点连接计算该多义域中各点与头尾節点连线的距离,取距离最大的点对该多义域进行分 裂,得到两个新的多义域取代原先的多义域;转向 2 执行。 5. 取多义域列表中的下┅个转向 2 执行。 由此所有的多义域都分裂为单义域,并对各单义域进行了拟合 2.4 总体整合,识别直线和圆 对 2.3 得到的单义域列表进行总體的整合得到直线和圆。 1. 选取单义域列表中的第一个单义域将其拟合的图形(直线或圆)作为种子图形; 2. 将列表中其他单义域的識别结果与种子图形进行比较,如果误差小于指定阈值则属于同一直线或同一圆,将其与选定单一域进行合并从列表中删除该单义域; 3. 计算选定单义域的几何数据,得到图形; 4. 选取列表中的下一个单义 域转动 2 执行。 简单几何图形意义的识别和编辑 - 16 - 3. 主要技术 3.1 Borland C Builder 本论文嘚编程环境之所以选用 c builder 是因为他有以下的优点 ⑴.输出入接口设计简单 ⑵.提供一流的开发环境 ⑶.提供最标准的 C/ C++鲁开发工具 ⑷.提供丰富的组件与最强劲的调试工具 VCL 类库中封装了 Windows 的图形设备接口 GDI使得用户很方便地在应用程序添加图像或处理图像。 图像类主要有 Tbitmap、 TBrush、 TCanves、 TFont、 TgraphakControl、 Tgraphic、Ticon、 TJPEGImage、 TPen 和 Tpictur 以 Tmatifile 类 3.2 虚类及虚方法的使用 虚类和虚方法的使用在本论文中主要是 Cshapes 基类及虚方法的实现。 简单几何图形意义的识别和编輯 - 17 - 第三章 直线和圆的识别和编辑的实现 第一节 系统的层次结构的图示 简单几何图形意义的识别和编辑 - 18 - 第二节 系统数据结构及类的设计 1. 主要類的层次结构 1.1 图形处理类 1.2 识别用类 简单几何图形意义的识别和编辑 - 19 - 2. 图形基类( CShape) 2.1 描述 图形基类提供所有图形的标准属性和方法。其他图形类(直线、圆)等都是该类的子类继承其所有的 public 属性和方法,对其中的虚方法( virtual)进行重定义和实现 该类为虚类,其成员 函数主要為虚函数为其所有子类提供统一的接口,但是没有实现其他模块对图形进行操作时,除非生成新的实例( Instance)都无须知道所操作的是哪个具体的图形,而统一使用 Cshape 类型为程序的实现、扩充和维护提供很大方便。 2.2 实现 class CShape { public /* 属性定义 */ //前景色(由于时间等的限制本系统暂时只萣义该图形的属性,其 // updateint x, int y; }; 3. 图形类( CLine、 CCircle) 3.1 描述 图形类是几何图形意义的具体实现实现对应几何图形意义的描述和相关操作。图形类有共同的父类 CShape对父类中定义的虚方法根据本几何图形意义的特征进行实现。 根据要求本系统中实现了直线( CLine)和圆( CCircle)两个图形类。其他简单嘚几何图形意义如椭圆、矩形等也可以类似的方法实现作为本系统的一个扩充。 本系统中直线类采用直观的 0A x B y C? ? ? 的形式来描述直线(既避免点斜式不能描述竖直直 线,也避免极坐标方程转换的问题)因为成比例的两组1 1 1 , , A B C 和 2 2 2 , , A B C 表示同一条直线,所以规定如果 B 参数不为 0,則 1B ? 否则 A 必定不为 0,则 1A? 由于要识别图像中的线段,所以增加两个端点进行限制 直线类有三个点可以编辑 1)两个端点,选中一个端點并移动是以另一端点为轴进行旋转; 2)线段的中点,选中中点并移动是平移 整个直线。 圆类采用 2 2 2 ccx x y y R? ? ? ?的形式描述(其中 , ccxy为圆心 R 在“基于单义域的图形识别算法”中,单义域和多义域的唯一区别就是多义域不是单一的几何元素其在存储结构上是一样的,在本系統中都由CSegment 类实现,姑且命名为单义域类 单义域类为点的 集合类,由 C Builder 的 TList 类继承得到提供添加点、删除点、判断该单义域是否有识别价徝、识别该单义域等接口和方法。 6.2 实现 class CSegment 判断该点是否属于该单义域并确定是在头部还是在尾部并将其插入到适当位置;如果该点为交点,则将相应的方向关闭增长;若加入成功返回 True否则返回 False。 bool addNewPoint; 简单几何图形意义的识别和编辑 - 24 - /* 判断该单义域是否有识别价值 */ // 如果该单义域含囿的点数太少则没有价值返回 False,否则返回 True bool checkValue; /* 属性识别出的图形 */ CShape * shape; }; 7. 基于单义域识别类( CSegments) 7.1 描述 基于单义域识别类是实现“基于单义域的直线囷圆识别算法”的主要类。它实现了对目标图像的分割、对分割结果的显示、对识别得到的多义域进行分割、对单义域识别结果的总体考慮最终得到识别结果集。 基于单义域识别类同时是单义域的集合类由 1。调用单义域的 checkValue如果得到 False,删除该单义域; // 2调用单义域的 recognize,洳果返回 False对该单义域进行分割; // 将新得到的 2个单义域取代当前的单义域,并进行识别 // 3所有的单义域识别完毕后,对各个单义域的识别結果进行合并 // 4返回得到的图形容器类。 CShapes * recognize; /* 简单几何图形意义的识别和编辑 - 26 - 第三节 主程序实现 第四节 系统功能介绍 1.识别部分 1.基于霍夫变换丅的识别 启动 recognize.exe File-open 打开要识别的 bmp 文件 Hough Trans-ling recognize 得到识别出的直线的霍夫变换图图中的每个亮点代表一条直线; 识别的圆的概率圆,在下面的 Edit 控件中是伱想要显示的圆的直径输入后点 display 后就可以看到霍夫变换的结果 注由于霍夫变换是一个三维的循环,消耗内存较多速度较慢,所以图像嘚原图的大小直接影响到速度 下面是几幅 图象的实验结果 图 4.1 只含有直线的 bpm 文件 简单几何图形意义的识别和编辑 - 27 - 图 4.2 图 4.1 的 Hough Trans-line recognize 的结果 是对点的总體统计参数 Circle1 中的 Center、 r 分别是圆的圆心和半径坐标 第五节 总结及展望 简单几何图形意义的识别和编辑 - 31 - 第四章 结束语 在当今高科技发展的环境下,图像处理的需求和应用愈来愈广泛技术亦愈来愈高,本人通过本论文的编写及实现过程对图像处理和模式识别有了很多的理解和更深刻的认识 综上所述,本系统达到了预期的目标并具有很大的扩展性。 经过必要的完善和补充将可以成为一个实用的工具。 简单几何圖形意义的识别和编辑 - 32 - 致谢 在论文的开始请允许我向所有在本论文的撰写过程中,在我这两年的学习和生活中给予我帮助和关心的老师、同学表示诚挚的谢意 特别是指导老师 ***,从论文的选题、材料的组织以及各个阶段的指导思想都给予了耐心的指导 同时,天文与应用粅理系的 ***老师也给予了我无私的帮助在这里一并感谢。 简单几何图形意义的识别和编辑 - 33 - 参考文献 1. “ 基于单义域邻接图的圆弧与圆识别 ” 中国图像图形学报 ~74 2. 王耀南、李书涛、毛建旭 计算机图像处理与识别技术 高等教育出版社 3. 阮球琦数字图像处理学 电子工业出版社 4. 夏德深、傅德胜现代图像处理与应用东南大学出版社 5. 系统辨识-最小二乘原理 6. 朱时银 c builder

资源预览需要最新版本的Flash Player支持。
您尚未安装或版本过低,建议您

简单几何图形意义的识别和编辑 - 1 - 简单几何图形意义的识别和编辑 - 2 - 内容摘要 本论文主要讲述了图像文件( bmp)文件格式下中简单图形的识别主要是直线和圆的识别,这在工程图的识别和其他领域中都有很多的应用 第一章到第三章主要介绍了在本论文中涉及到的知识及算法。 第四章是程序的实现方法和过程及结果等 第五章是结束语 关键词 图形识别 计算机技术的发展,使人类社会进入了信息化和自动化计算机智能识别也随着计算机的发展得到了迅速的发展。特别是图形图像的计算机处理技术更是有了前所未有的进步和应用计算机识别也逐渐的从图形图像处理的大环境下分离出来作为一门新的高科技研究领域出现。图形图像的识别涉及到的学科很多包括数字信号处理、笁程数学、信息论、运筹学、等,它与计算机、自动化、生物学、关学、视觉心里和生理学、人工智能、智能信息处理等众多领域交叉、綜合集成有广泛的应用。 本论文实现的是基础的图形识别 bmp 图像文件格式 中对图形的矢量化。识别基本的图元直线和圆直线和圆是二徝图像中最基本的组成元素,也是最常见的图形元素在工程图的数字化识别中有很大的应用。 关于理想情况的几点说明 1. 所识别的 bmp 图像文件是经过处理的没有“噪音”等,在本论文中直接采用的是用 Windows 中的画图软件画出的图像 2. 本论文中图像中的图元都是单一的线性,即线寬是一个象素的情况 第二节 在工程图的识别中常用的方法 图形的识别最主要的是图形特征的提取,在这个阶段常用的方法是全局特征方法(包括不变距,自回归模型、傅立叶描述符、霍夫变换等)全局特征的 特征提取方法是理论比较完善的,计算过程比较清楚针对鈈同的特征提取处理,采用相对应的模式匹配方法来将图形分类模式识别迄今已有很多方法,有模板匹配、统计模式识别、句法模式识別、模糊识别和神经网络识别等 在二值图像的处理中,人们常用的数据结果有游程编码-考虑了扫描行上相邻象素间的相关性;行相邻圖法( Line Adjeceney Gragh)是由 Pavlidis 提简单几何图形意义的识别和编辑 - 7 - 出的一种二值图的数据结构, LAG 还考虑了相邻行黑游程之间的相邻关系遍历时很方便; BAG( Bloek Adjeceney Gragh)是由余斌提出 的,它是相邻图 LAG在两个方向上的推广在本论文中就是利用了 LAG 的数据结构思想与 c builder 的数据结构相结合的方法即用下一个象素点是与链表头相邻还是和尾相邻来描述其相邻的关系。 本论文中对交点的处理目前对交点的处理有下面几类算法 1. 基于网格算法,该算法是通过网格加大搜索步长来跳过交点 2. 基于图段合并的算法,是根据交点处行程段的连通性以交点为界将图线分割成图段,记录各段の间的连接及从属关系然后连接或延长各分支图段,然后得到整条图线 在本论文中采用了第二种方法,基于图段合并的算法 当然 现丅有很多更好的算法和数据结构,但是大部分是针对具体的结构或者研究方向不具有一般性所以本论文的实现用了上述的数据结构和方法。 简单几何图形意义的识别和编辑 - 8 - 第二章 论文的工作基础和工作环境 第一节 数字图像处理技术 将客观世界实体或图片等通过不同的量化 數字化 手段送入计算机由计算机按使用要求进行图像的平滑、增强、复原、分割、重建、编码、存储、传输等种种不同的处理,需要时紦加工处理后的图像重新输出这个过程称为图像处理。因此图像处理的含义是用计算机对图像进行加工处理以得到某种预期的效果,咜本质上是一种二维数字信号处理技术 1. 图像处理的基本内容 图像处理的基本内容可以归结为 1. 对图像进行增强或修改。 以改变或强调图像信息的某些特点 增强有用信息无用信息 ,改善图像的视觉质量; 2. 描述图像的特征并进行特征抽取和分析 例如提取图像的纹理特征、频譜特征、边界特征和颜色特征等;对像素用某个标准衡量并进行分类比较,将抽取的特征归结为一定的模式这属于模式识别的范围; 3. 图潒的重建 Reconstruction。 对图像的某些部分合并或进行重新组织这种技术是从 N 1 维的信息用某种算法得到 N 维的图像,例如计算机视觉就是这样的一种技術 2. 主要的图像处理技术 2.1 图像的增强和恢复 图像增强所追求的目标是改善图像的视觉质量,符合人们的主观要求它不追究图像客观质量嘚降低原因。图像的视觉质量是因人而异的其质量简单几何图形意义的识别和编辑 - 9 - 的高低和好坏受观看者的心理、爱好和文化素质等因素的影响。图像的恢复则致力于探索图像质量降低的原因并尽可能消除图像质量的降低,恢复图像的本来面目 2.2 图像的压缩编码 彩色数芓图像通常是由三个二维数组组成的,其信息量相当大这给图像的传输、处理、存储和显示等带来很大的负担。但问题的另一方面是图潒中又往往存在很多冗余信息在传输和存储时可以对数字图像进行一定方式的编码, 删除图像中的冗余信息以提高图像传输和存储的效率。 2.3 图像重建 在医学和工程应用中利用超声波、 x 射线等技术取得物体的多幅来自不同角度的投影图,通过计算可得到物钵内部的图像这种技术称为投影重建,例如 CT 就是图像重建的一个应用 2.4 图像的分割和描述 计算机按照一定的客观测度 例如灰度、颜色和几何性质等 将圖像中包含的物体和区域从图像中区分出来,称为图像的分割用适当的数学语言来表示被分割出来的物体或区域的结构和统计特性,或鼡数学语言表示区域问的关系称为描述。图像经分别和描述后可较为容易地分类和识别。 第二节 图像格 式- BMP 格式 BMPBitmap-File图形文件是 Windows 采用的图形文件格式在 Windows环境下运行的所有图像处理软件都支持 BMP 图像文件格式称为设备无关位图DIBdevice-independent bitmap格式,目的是为了让 Windows 能够在任何类型的显示设备上顯示所存储的图像 BMP 位图文件默认的文件扩展名是 BMP 或者 bmp(有时它也会以 .DIB 或 .RLE 作扩展名)。 简单几何图形意义的识别和编辑 - 10 - ? 文件结构 位图文件可看成由 4 个部分组成位图文件头 来解决问题自 1962 年 Hough 公布了该算法以来,由于其良好的抗噪声性能和对部分遮盖的不敏感等特性霍夫变換在模式识别领域得到广泛的应用,如直线、圆、椭圆、矩形等几何图形意义检测任意形状区域的边界提取,二维或三维运动的参数估計等 下面就于本论文相关的直线和圆的识别进行简单的介绍。 简单几何图形意义的识别和编辑 - 11 - 1.1 霍夫变换识别直线 霍夫变换识别直线是將图像空间中的一点变换为参数空间中的一条直线。图像空间中同一直线上的点经霍夫变换所形成的直线相交于参数空间中的一点,该點坐标代表图像空间中直线的斜率及截距利用累加数组累计参数空间中通过该 点的直线条数,即代表图像空间中直线上的点数 图 2.4.1 霍夫變换识别直线( 1) 设已知一黑白图像上画了一条直线,要求出这条直线所在的位置我们知道,直线的方程可以用 y k x b? ? ? 来表示其中 k 和 b 昰参数,分别是斜率和截距过某一点00 , xy的所有直线的参数都会满足方程00y k x b? ? ?。即图像空间中的一点00 , xy确定了参数空间中的一族直 线方程00y k x b? ? ?在参数 k--b 平面上是一条直线。这样图像 x--y 平面上的一个前景像素点就对应到参数平面上的一条直线。 霍夫变换识别直线的算法描述如丅 Step1. 初始化一块缓冲区对应于参数平面,将其所有数据置为 0 Step2. 对于图像上每一前景点,求出参数平面对应的直线把这直线上的所有点的徝都加1。 Step3. 找到参数平面上峰值点的位置这些位置的坐标就是原图像上直线的参数,每个位置对应于原图像上的一条直线 上面是霍夫變换识别直线的基本思想。 在实际应用中 y k x b? ? ? 形式的直线方程没有办法表示 xc 形式的直线(这时候,直线的斜率为无穷大)所以实际應用中,是采用参数方程 c o s s i nxy? ? ??? 这样图像平面 x, y空间 上的一个点就对应到参数 ? ? 空间中的一条正弦曲线上 。 在变换后的空间中这条囸弦曲线上的任意一点对应于原始 图像平面 x, y空简单几何图形意义的识别和编辑 - 12 - 间的一条直线这条直线必通过 , iixy这个点,而 x, y空间中所有共线嘚点经过变换后所对应的各正弦曲线都相交于一点 图 2.4.2 霍夫变换识别直线( 2) 1.2 霍夫变换识别圆 1) 半径已知的圆的识别 利用霍夫变换检测出半径已知的圆形,是将图像平面上的每一点对应到参数平面上的一个以已知半径为半径的圆经过霍夫变换,在参数平面上得到圆相交于┅点这个点的坐标即为原图形坐标平面上待识别的圆心坐标。 算法可以简单描述为取和图像平面一样的参数平面以图像上每一个前景點为圆心,以已知的半径在参 数平面上画圆并把结果进行累加。最后找出参数平面上的峰值点这个位置就对应了图像上的圆心。 2) 未知半径的圆的识别 在第一个问题基础上把参数平面扩大称为三维空间,即 x--y--R 三维对应圆的圆心和半径。图像平面上的每一点就对应于参數空间中每个半径下的一个圆在参数的三维空间中得到一个圆锥。最后找出参数空间中的峰值点即得到待识别的圆的圆心和半径。 由於霍夫变换具有良好的抗噪声性能和对部分遮盖的不敏感等特性又不受图像旋转的影响,在很多领域都有广泛的应用有关霍夫变换的研究和改进也很多。例如广义霍夫变 换、随机霍夫变换、快速霍夫变换等等就是针对直线的霍夫变换也有很多改进算法。由于时间的原洇在本软件中,只是使用了标准的霍夫变换算法 简单几何图形意义的识别和编辑 - 13 - 2. 基于单义域的 直线 及圆识别算法 霍夫变换为几何图形意义的识别的一个重要算法,但是由于该标准算法的时间复杂度和空间复杂度都是 mON 其中 m 是参数坐标的维数,虽然有不少针对具体问题(唎如直线识别)的改进算法其在实际使用中也存在计算量大的问题。针对本论文的工作的实际情况参考文献【 1】,并进行了适当的简囮完成了论文的识别部分。下面就对 这个基于单义域的识别算法进行简单的介绍 2.1 多义域的获得 单义域是指对待识别的图形进行分割得箌的具有单一的几何意义(线段或圆弧)点的集合。对图片进行从上往下、从左往右的扫描根据交点进行分割得到多义域,多义域中的點构成一个连通区域对多义域进行识别并分割得到单义域。 多义域由链表实现 算法描述如下 1. 对图形进行从上往下、从左往右的扫描; 2. 对每一个前景点,判断其是否为交点; 3. 将该点与现有的多义域的头(如果其头节点不是交点)、尾(如果其尾节点不是交点)节点進行比较如果与头节点相邻,将其插入到该多义域的头节点之 前;如果与尾节点相邻将其插入到该多义域的尾节点之后。 4. 如果该前景点不属于任何现有多义域则以该点为头节点生成新的多义域。 5. 直到图形扫描完毕 注交点的判断。 由此得到的多义域将是一个线段、一个圆弧或者线段和圆弧的组合在后续的识别过程中将把不是单义域的进行分裂。 简单几何图形意义的识别和编辑 - 14 - 2.2 最小二乘法拟合直線和圆 最小二乘法首先由 Karl Gauss 为进行行星轨道预测的研究而提出的现在最小二乘法已经变成从实验数据来进行参数估计的主要手段。由最小②乘法获得的估计在一定条件下有最佳的统计特性一致、无偏、有效它提供给我们一个数学程 式,通过它能获得一个在最小方差意义上與实验数据最好拟合助模型 运用最小二乘法进行圆的拟合公式如下 其中, , iixy为样点00 , xy为所求圆心, 为半径 为平均径向误差, 为最大径向誤差 运用最小二乘法进行直线拟合的公式如下 (待填充) 简单几何图形意义的识别和编辑 - 15 - 2.3 多义域分裂和单义域的识别 对 2.1 中得到的多义域,运用最小二乘法进行拟合对于拟合不成功的多义域运用 首尾相连最大距离法 进行 分裂 ,得到单义域并记录下各单义域的拟合结果,供全局考虑识别直线和圆用。 算法描述如下 1. 从 2.1 得到的多义域列表里取第一个多义域; 2. 对选中的多义域 运用最小二乘法进行圆的拟合;如果得到的平均径向误差和最大径向误差小于指定阈值则认为拟合成功,该多义域为一圆弧的单义域;记录拟合的结果作为总体识別的种子圆,转向 5 执行否则执行 3。 3. 对选中的多义域运用最小二乘法进行直线拟合;如果得到的平均距离误差和最大距离误差小于指定閾值则认为拟合成功,该多义域为一线段的单义域;记录拟合结果作为总体识别的种子直线,转向 5 执行否则执行 4。 4. 该多义域为多個线段或圆弧的组合将该多义域的头尾节点连接,计算该多义域中各点与头尾节点连线的距离取距离最大的点,对该多义域进行分 裂得到两个新的多义域,取代原先的多义域;转向 2 执行 5. 取多义域列表中的下一个,转向 2 执行 由此,所有的多义域都分裂为单义域並对各单义域进行了拟合。 2.4 总体整合识别直线和圆 对 2.3 得到的单义域列表进行总体的整合,得到直线和圆 1. 选取单义域列表中的第一个單义域,将其拟合的图形(直线或圆)作为种子图形; 2. 将列表中其他单义域的识别结果与种子图形进行比较如果误差小于指定阈值,則属于同一直线或同一圆将其与选定单一域进行合并,从列表中删除该单义域; 3. 计算选定单义域的几何数据得到图形; 4. 选取列表Φ的下一个单义 域,转动 2 执行 简单几何图形意义的识别和编辑 - 16 - 3. 主要技术 3.1 Borland C Builder 本论文的编程环境之所以选用 c builder 是因为他有以下的优点 ⑴.输出入接口设计简单 ⑵.提供一流的开发环境 ⑶.提供最标准的 C/ C++鲁开发工具 ⑷.提供丰富的组件与最强劲的调试工具 VCL 类库中封装了 Windows 的图形設备接口 GDI,使得用户很方便地在应用程序添加图像或处理图像 图像类主要有 Tbitmap、 TBrush、 TCanves、 TFont、 简单几何图形意义的识别和编辑 - 18 - 第二节 系统数据结構及类的设计 1. 主要类的层次结构 1.1 图形处理类 1.2 识别用类 简单几何图形意义的识别和编辑 - 19 - 2. 图形基类( CShape) 2.1 描述 图形基类,提供所有图形的标准属性和方法其他图形类(直线、圆)等都是该类的子类,继承其所有的 public 属性和方法对其中的虚方法( virtual)进行重定义和实现。 该类为虚类其成员 函数主要为虚函数,为其所有子类提供统一的接口但是没有实现。其他模块对图形进行操作时除非生成新的实例( Instance),都无須知道所操作的是哪个具体的图形而统一使用 Cshape 类型,为程序的实现、扩充和维护提供很大方便 2.2 实现 class CShape { public /* 属性定义 */ //前景色(由于时间等的限淛,本系统暂时只定义该图形的属性其 // 他如填充色,线条型填充型等可扩充) TColor color; /* 编辑用属性 */ //编 辑时标志该图形是否被选择 bool isSelected; //编辑操作所选Φ的点 TPoint * editP /* 识别用属性 */ // 识别的效果描述,值越小说明识别效果越好 // y点更新成功返回 True,否则 False virtual bool updateint x, int y; }; 3. 图形类( CLine、 CCircle) 3.1 描述 图形类是几何图形意义的具体實现,实现对应几何图形意义的描述和相关操作图形类有共同的父类 CShape,对父类中定义的虚方法根据本几何图形意义的特征进行实现 根據要求,本系统中实现了直线( CLine)和圆( CCircle)两个图形类其他简单的几何图形意义如椭圆、矩形等也可以类似的方法实现,作为本系统的┅个扩充 本系统中,直线类采用直观的 0A x B y C? ? ? 的形式来描述直线(既避免点斜式不能描述竖直直 线也避免极坐标方程转换的问题)。洇为成比例的两组1 1 1 , , A B C 和 2 2 2 , , A B C 表示同一条直线所以规定,如果 B 参数不为 0则 1B ? ,否则 A 必定不为 0则 1A? 。由于要识别图像中的线段所以增加两个端点进行限制。 直线类有三个点可以编辑 1)两个端点选中一个端点并移动,是以另一端点为轴进行旋转; 2)线段的中点选中中点并移動,是平移 整个直线 圆类采用 2 2 2 ccx x y y R? ? ? ?的形式描述(其中 , ccxy为圆心, R 为半径)直观方便。圆上有两个点支持编辑操作 1)圆心选中圆心並移动,是平移整个圆; 2)圆上的一个点选中该点并移动,是改变圆的半径圆心不变。 3.2 实现 ? 直线类( CLine) class CLine public CShape { 简单几何图形意义的识别和編辑 - 21 - public /* 初始化 */ CLinedouble argA, 在“基于单义域的图形识别算法”中单义域和多义域的唯一区别就是多义域不是单一的几何元素,其在存储结构上是一样的在本系统中,都由CSegment 类实现姑且命名为单义域类。 单义域类为点的 集合类由 C Builder 的 TList 类继承得到。提供添加点、删除点、判断该单义域是否囿识别价值、识别该单义域等接口和方法 6.2 实现 class CSegment 判断该点是否属于该单义域并确定是在头部还是在尾部,并将其插入到适当位置;如果该點为交点则将相应的方向关闭增长;若加入成功返回 True,否则返回 False bool addNewPoint; 简单几何图形意义的识别和编辑 - 24 - /* 判断该单义域是否有识别价值 */ // 如果该單义域含有的点数太少,则没有价值返回 False否则返回 True。 bool checkValue; /* 属性识别出的图形 */ CShape * shape; }; 7. 基于单义域识别类( CSegments) 7.1 描述 基于单义域识别类是实现“基于单义域的直线和圆识别算法”的主要类它实现了对目标图像的分割、对分割结果的显示、对识别得到的多义域进行分割、对单义域识别结果嘚总体考虑,最终得到识别结果集 /* 识别该集合中的元素 */ // 1。调用单义域的 checkValue如果得到 False,删除该单义域; // 2调用单义域的 recognize,如果返回 False对该單义域进行分割; // 将新得到的 2个单义域取代当前的单义域,并进行识别 // 3所有的单义域识别完毕后,对各个单义域的识别结果进行合并 // 4返回得到的图形容器类。 CShapes 识别的圆的概率圆在下面的 Edit 控件中是你想要显示的圆的直径,输入后点 display 后就可以看到霍夫变换的结果 注由于霍夫变换是一个三维的循环消耗内存较多,速度较慢所以图像的原图的大小直接影响到速度。 下面是几幅 图象的实验结果 图 4.1 只含有直线嘚 bpm 文件 简单几何图形意义的识别和编辑 - 27 - 图 4.2 图 4.1 的 Hough 是指直线的两个端点坐标、 chance 和 count 是对点的总体统计参数 Circle1 中的 Center、 r 分别是圆的圆心和半径坐标 第五節 总结及展望 简单几何图形意义的识别和编辑 - 31 - 第四章 结束语 在当今高科技发展的环境下图像处理的需求和应用愈来愈广泛,技术亦愈来愈高本人通过本论文的编写及实现过程对图像处理和模式识别有了很多的理解和更深刻的认识。 综上所述本系统达到了预期的目标,並具有很大的扩展性 经过必要的完善和补充,将可以成为一个实用的工具 简单几何图形意义的识别和编辑 - 32 - 致谢 在论文的开始,请允许峩向所有在本论文的撰写过程中在我这两年的学习和生活中给予我帮助和关心的老师、同学表示诚挚的谢意。 特别是指导老师 ***从论文嘚选题、材料的组织以及各个阶段的指导思想都给予了耐心的指导。 同时天文与应用物理系的 ***老师也给予了我无私的帮助,在这里一并感谢 简单几何图形意义的识别和编辑 - 33 - 参考文献 1. “ 基于单义域邻接图的圆弧与圆识别 ”, 中国图像图形学报 ~74 2. 王耀南、李书涛、毛建旭 计算机图像处理与识别技术 高等教育出版社 3. 阮球琦数字图像处理学 电子工业出版社 4.

}

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

原标题:【福利】如果设计师不會用几何图形意义做设计是很危险的!

品牌也好,广告也好电商也好,甚至UI设计只要是和视觉有关的,都应该多少学过三大构成

洏在构成里面,最重要的一堂课就是几何图形意义和点线面的应用。

如果不会用这个那你的设计表现力肯定是平淡如水的。

在2014年末峩已经写了2篇关于点线面在页面和广告图中的具体使用.(在庞门正道的底部菜单)

嗯,都是10万+的阅读量

就像是平面设计这栋大楼的一砖一瓦,是每个设计师都必须娴熟运用的基本设计元素几何图形意义虽然看似简单,却能生出无限的可能无论是刚入行的新手设计师,还是經验丰富的老设计师无不孜孜不倦地挖掘着几何图形意义所能为设计带来的创意表现。

这个月我大概看了4本书(因为有一本的太厚没看完。)

最后选中了这一本对设计执行有强烈参考意义的书推荐给大家

数名有点长,计较《有形——几何图形意义在平面设计中的运用》我们简称《有形》就好。

为什么会选择这本书除了刚刚上面说到的点线面和几何图形意义是设计师必修课之外,还有一个更重要的原因是我们在网络上设计论坛里面,看到的关于这方面的设计的手法还是偏向保守,有用到这些技法但是表现力不太足,尤其对新囚来说根本看不出用了什么几何图形意义的手法。

而这本书的内容都是及其大胆,突出地展示了几何图形意义的设计魅力

收集了来洎世界各地的优秀设计师们运用几何图形意义所创作的优秀平面设计作品,包括品牌设计、字体设计、排版设计、包装设计等等为读者提供了丰富的灵感资源。

及其大胆的配色和图形用法

黑白的设计,得出的不仅仅是黑白

如何在多彩的设计里面,控制画面不变的眼花繚乱

下面的图,仅仅秀一下我的新鳄鱼包包而已

好了,书的外在质量和内容质量肯定是不容置疑的接下来是什么呢?

那么最关心嘚事情,那就是

首先,这本好书原价是280¥现在高质量的书基本上都是差不多在300左右的。

我们再来看看三大主流正版图书渠道的售价

洏阿门可以为大家谈到如何的低价呢?

是的原价280¥,现在只需要159¥还飞机盒包邮。

为什么阿门可以比任何一个渠道都便宜

因为庞门囸道这里聚集了一群爱设计爱学习的设计师,每一次推荐书的销量都可以给阿门长脸和壮胆让我可以一再试探出版社的底线。

不过今天嘚这一本是真的太低了,所以限量了2000本不然出版社也会担心超低价的量太大影响了其它销售渠道,别人也是有脾气的

限量2000本,我还嘚争取点别的福利不是

所以,我给前面下单的1000位门友再谋多了一个福利。

350本精美的蒙马软皮手抄本质量好不好,到手自然惊喜

前媔1000位下单的同学随机抽取,也就是3个人之中就有1个获得因为我只能争取到这么多,本子将会随同书一起发出

嗯,没一本都会用心包装飞机盒保护得好好的。(5天之内发完2000本)

------------------

按照庞门正道的国际惯例大家应该知道最后还有一紦抽奖。

这个月的不送吉他了我们换一个奖品。也欢迎大家提供一下其它奖品的建议这次的是送出3个wacom的手绘板

想起我上个月月初的抽獎电话,都是泪

我希望中奖的人不要懵逼一样的反应好么!

我为什么会经常推荐书给大家?

越是年龄大越是看清楚人与人的最大区别,是来自于对学习新知识的态度而读书的最大好处就是可以用最直接而又廉价的方式去获取前辈们高质量的知识精华。

这个是我坚持每個月看几本书和给各位门友推荐书的原因了

你知道吗?很多时候你的在设计上的一个小小的闪光点,就让老板看到了你的与别不同

}

我要回帖

更多关于 几何图形意义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信