4.3区域填充.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.3区域填充,ps选中区域填充颜色,ps选定区域填充颜色,matlab区域填充,matlab闭合区域填充,区域填充算法,opencv区域填充,ps区域填充,matlab区域填充颜色,visio区域填充颜色

4.3二维图形的填充 南京农业大学 谢忠红 (1)矩形的填充方法(规则形状)(fill_rec2) (应定义一个什么结构体?) 逐点判断法 void FillPolygonPbyP( Polygon *P, int Color) { int x,y; for(y = ymin;y = ymax;y++) for(x = xmin;x = xmax;x++) if(IsInside(P,x,y)) //在多边形内 PutPixel(x,y,Color); else //在多边形外 PutPixel(x,y,backgroundColor); } 射线法判断像素点在多边形内还是外 步骤: 从待判别点v发出射线 求交点个数k K的奇偶性决定了点与多边形的内外关系 (奇数个交点在内部偶数个交点在外面) 逐点判断法的优缺点 优点:程序简单, 缺点:速度太慢 主要原因:计算量太大,费时 由于该算法割断了各象素之间的联系,孤立地考察各象素与多边形的内外关系,使得几十万甚至几百万个象素都要一一判别,每次判别又要多次求交点,需要做大量的乘除运算,花费很多时间。 (3)种子填充法 基本思路: 种子填充算法 左上角(left,top)右下角(right,bottom)的矩形 void fill(int x,int y,int newcolor) { if( ((xleft)(xright))((ytop)(ybottom))){ if ( getpixel(x,y)!=newcolor) { putpixel(x,y,newcolor) ; //设置(x,y)点为新颜色 } } void fill(int x,int y,int newcolor) { if( ) { if (getpixel(x,y)!=newcolor) { putpixel(x,y,newcolor) ; //设置(x,y)点为新颜色 fill(x,y+1,newcolor) ;//上 fill(x,y-1,newcolor) ;//下 fill(x+1,y,newcolor);//左 fill(x-1,y,newcolor);//右 } } } 难点分析: 形状任意时,我们无法确定边界的位置, 边界表示的4连通区域的递归填充算法 void MyFloodFill(int x,int y,int borderColor, int newColor) { int color=getpixel(x,y); if((color!=borderColor)(color!=newColor)) {PutPixel (x,y,newColor); MyFloodFill(x,y+1,borderColor,newColor); MyFloodFill(x,y-1,borderColor,newColor); MyFloodFill(x-1,y,borderColor,newColor); MyFloodFill(x+1,y,borderColor,newColor); } } 4.3.2多边形扫描线填充原理 基本原理: 利用扫描线的连贯性,填

文档评论(0)

gooddoc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档