区域填充算法的研究.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
区域填充算法的研究

区域填充算法的探究 摘要 区域填充算法是计算机图形学的一个重要研究课题.传统的区域填充算法存在填充结果不完备及算法效率不高的问题,在分析了两种传统区域填充算法的原理的基础上,详细阐述了四种改进的区域填充算法,并对算法的效率性能进行比较分析,指明了区域填充算法未来的研究热点,着重探究区域填充算法尤其是扫描线种子填充算法和种子填充算法近年来的发展状况,比较它们之间的优点与足,对图形学的区域填充算法有更深入的理解介绍种子填充算法及其改进算法。 关键词:区域填充;填充算法;扫描线算法;种子填充算法 本文由天空乐园大学生旅游网整理分享 1 引言 区域填充是指用不同的颜色、灰度、线条或符号填充一个有界区域,该区域可以是带孔的,也可以是不带孔的.它是计算机图形学的一项重要内容,在交互式图形设计、真实感图形显示、计算机辅助设计、图形分析等领域有着广泛的应用,一直是研究的热点.传统的区域填充算法有两种,一种是通过确定横跨区域的扫描线的覆盖间隔来填充的扫描线算法,另一种是从给定的位置开始填充直到指定的边界为止的种子填充算法.扫描线算法主要用来填充比较简单的标准多边形区域,比如圆、椭圆以及其他一些简单的多边形,它对轮廓线的形状有一定的要求,在处理复杂区域时往往失效.种子填充算法可以解决边界比较复的多边形区域填充问题,它必须首先确定一个或者多个区域内部的点作为种子点,并赋予填充色,然后以该点为起点,用四向连通方法或八向连通方法找到区域内的所有点填充。扫描线算法在处理带水平边的凹拐点时不能正确填充,这是该算法的一个突出问题,但由于利用了扫描线上象素之问的连贯性,因此具有较高的效率.最简单直观的种子填充算法采用递归方法,由于进行大量的出入栈操作,因此效率很低,在填充较大的区域时,要求分配较大的堆栈空问,不仅浪费了内存,也可能出现堆栈溢出现象.填充结果的完备性和填充过程的高效高速是区域填充算法的度量标准.在传统区域填充算法的基础上,很多文献提出了更加正确高效的算法.本文介绍四种改进的区域填充算法,并对其进行比较分析。 2 区域填充基本知识点介绍 2.1多边形扫描转换 在计算机图形学中,多边形有两种重要的表示方法:顶点表示和点阵表示。顶点表示是用多边形的顶点序列来表示多边形,特点直观、几何意义强、占内存少,易于进行几何变换,但由于它没有明确指出哪些像素在多边形内,故不能直接用于面着色。点阵表示是用位于多边形内的像素集合来刻画多边形。这种表示丢失了许多几何信息,但便于帧缓冲器表示图形,是面着色所需要的图形表示形式。光栅图形的一个基本问题是把多边形的顶点表示转换为点阵表示。这种转换称为多边形的扫描转换。 多边形可分为凸多边形、凹多边形、含内环多边形。 (1)凸多边形:任意两顶点间的连线均在多边形内。 (2)凹多边形:任意两顶点间的连线有不在多边形内的部分。 (3)含内环多边形:多边形内包含有封闭多边形。 扫描线多边形区域填充算法是按扫描线顺序,计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的像素。区间的端点可以通过计算扫描线与多边形边界线的交点获得。对于一条扫描线,多边形的填充过程可以分为4个步骤。 (1)求交:计算扫描线与多边形各边的交点。 (2)排序:把所有交点按x值递增顺序排序。 (3)配对:第一个与第二个,第三个与第四个等,每对交点代表扫描线与多边形的一个相交区间。 (4)填色:把相交区间内的像素置成多边形颜色,把相交区间外的像素置成背景色。 多边形扫描转换算法步骤如下: (1)初始化:构造边表。 (2)对边表进行排序,构造活性边表。 (3)对每条扫描线对应的活性边表中求交点。 (4)判断交点类型,并两两配对。 (5)对符合条件的交点之间用画线方式填充。 (6)下一条扫描线,直至满足扫描结束条件。 2.2区域填充算法 这里的区域指已表示成点阵形式的填充图形,是像素的集合。区域有两种表示形式:内点表示和边界表示,如图1所示。内点表示,即区域内的所有像素有相同颜色;边界表示,即区域的边界点有相同颜色。区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。 ○表示边界点●表示内点 图1 区域的内点表示和边界表示 图2 4连通区域和8连通区域 区域填充算法要求区域是连通的。区域可分为4向连通区域和8向连通区域,如图2所示。4向连通区域指的是从区域上一点出发,可通过四个方向,即上、下、左、右移动的组合,在不越出区域的前提下,到达区域内的任意像素;8向连通区域指的是从区域内每一像素出发,可通过8个方向,即上、下、左、右、左上、右上、左下、右下这八个方向的移动的组合来到达。 2.2.1区域填充的扫描线算法 扫描线算法是按照扫描线顺序,计算扫描线与多

您可能关注的文档

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档