图形学4:区域填充算法

三道已知大题大家有把握拿到满分了吗?接下来就要靠小编多年积累的押(zi)题(xin)能力了!!!!

区域填充算法这部分是考试的热点,在很多模拟试卷中都出现了有效边表算法的大题。4-连通、8-连通算法出现在各种题型中。上学期树莓的期末考试考到了泛滥填充算法的画图,大家引起注意哟。

有效边表算法

当扫描线与多边形的顶点相交时

若共享顶点的两条边分别落在扫描线的两边,交点只算一个;

若共享顶点的两条边在扫描线的同一边,这时交点作为零个或两个。


区域填充图元

注意:8-连通算法可以填充4-填充算法的区域,但是4-连通算法不能填充8-连通算法的区域。

边界填充算法(Boundary-fill Algorithm)

把位于给定区域的边界上的象素一一列举出来的方法称为边界表示法。

泛滥填充算法(Flood-fill Algorithm)

列举出给定区域内所有象素的表示方法称为内点表示。

沿扫描线填充水平象素段的4-连通边界填充

算法步骤:
种子象素入栈;当栈非空时作如下三步操作:

  1. 栈顶象素出栈;
  2. 填充出栈象素所在扫描行的连续象素段,直到遇到边界象素为止,即每出栈一个象素,就对包含该象素的整个扫描线区间进行填充;
  3. 在区间中检查与当前扫描线相邻的上下两条扫描线的有关象素是否全为边界象素或已填充的象素,若存在非边界、未填充边界的象素,则把每一区间的最左象素取作种子象素入栈。

泛滥填充算法

算法原理:

从指定的种子(x,y)开始,用所希望的填充颜色赋给所有当前为给定内部颜色的象素点。

8-连通泛填充算法步骤如下:
种子象素入栈;当栈非空时重复执行如下三步操作:

  1. 栈顶象素出栈;
  2. 将出栈象素置成填充色;
  3. 检查出栈象素的8-邻接点,若其中某个象素点是给定内部点的颜色且未置成新的填充色,则把该象素入栈。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容