zoukankan      html  css  js  c++  java
  • 区域填充算法

    三、区域填充算法——>【要求:区域是连通的

    区域:指已经表示成点阵形式的填充图形,是象素的集合。
    1、区域有两种表示形式:



    1)内点表示:枚举出区域内部的所有象素,内部所有象素着同一个颜色,边界像素着与内部象素不同的颜色。
    2)边界表示:枚举出区域外部的所有象素,边界上的所有象素着同一个颜色,内部像素着与边界象素不同的颜色。

    2、区域分为:

    1)四向连通区域:从区域上一点出发可通过【上、下、左、右】四个方向移动的组合,在不越出区域的前提下,到达区域内的任意象素。
    2)八向连通区域:从区域上一点出发可通过【上、下、左、右、左上、右上、左下、右下】八个方向移动的组合,在不越出区域的前提下,到达区域内的任意象素。

    区域填充:将区域内的一点(常称【种子点】)赋予给定颜色,然后将这种颜色扩展到整个区域内的过程。

    简单四连通种子填充算法(区域填充递归算法)——>用【栈结构】来实现
    原理——>种子象素入栈,当【栈非空】时重复如下三步:




    【不足】

      a)某些象素会多次入栈,降低算法效率,栈结构占空间;
            b)递归执行算法简单,但效率不高,区域内每个象素都要进/出栈
            c)费时费内存;

  • 相关阅读:
    [BZOJ3398] [Usaco2009 Feb]Bullcow 牡牛和牝牛(动态规划)
    [BZOJ3399] [Usaco2009 Mar]Sand Castle城堡(排序)
    [VIJOS1003] 等价表达式(表达式解析)
    [BZOJ4690] Never Wait for Weights(并查集)
    sql server 查出数据库表结构
    sql server 时间日期转换
    LINQ语法详解
    方法练习题
    数组练习题
    第四章 JAVA数组知识点
  • 原文地址:https://www.cnblogs.com/Penglimei/p/9669726.html
Copyright © 2011-2022 走看看