一、区域填充

1. 与多边形扫描转换算法对比

1)基本思想不同

a. 多边形扫描转换是指将多边形的顶点表示转化为点阵表示;

b. 区域填充只改变区域的填充颜色,不改变区域表示方法;

2)基本条件不同

a. 在区域填充算法中,要求给定区域内一点作为种子点,然后从这一点根据连通性将新的颜色扩散到整个区域;

b. 扫描转换多边形是从多边形的边界(顶点)信息出发,利用多种形式的连贯性进行填充的;

2. 基本概念

1)区域——指已经表示成点阵形式的填充图形,是像素的几何;

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

3)区域可采用内点表示和边界表示两种表示形式

内点表示:枚举出区域内部的所有像素,内部的所有像素着同一个颜色,边界像素着与内部像素不同的颜色;

边界表示:枚举出边界上的所有像素,边界上的所有像素着同一个颜色,内部像素着与边界像素不同的颜色;

4)4连通区域和8连通区域

3. 简单四连通种子填充算法(区域填充递归算法)

1)原理:假设在多边形区域内部有一像素已知,由此出发找到区域内的所有像素,用一定的颜色或灰度来填充;假设区域采用边界定义,即区域边界上所有像素均具有某个特定值,区域内部所有像素均不取这一特定值,而边界外的像素则可具有与边界相同的值;

2)使用栈结构来实现简单的种子填充算法:

种子像素入栈,当栈非空时重复执行如下三步操作:

a)栈顶像素出栈;

b)将出栈像素置成要填充色;

c)按左、上、右、下顺序检查与栈像素相邻的四个像素,若其中某个像素不在边界且未置成填充色,则把该像素入栈;

3)示例图

【说明】八连通种子填充算法只在第三步不同,依次按八个方向检查入栈像素。

4. 种子填充算法的不足之处

1)有些像素入栈多次,降低算法效率;栈结构占空间;

2)递归执行,算法简单,但效率不高;

转载于:https://www.cnblogs.com/mzyan/p/9707450.html

CG-光栅图形学区域填充算法-学习笔记相关推荐

  1. CG-光栅图形学消隐算法-学习笔记

    [引入] 1. 目的:当我们观察空间任何一个不透明的物体时,只能看到该物体朝向我们的那些表面,其余的表面由于物体所遮挡我们看不到.所以需要消隐,来消除被遮挡的不可见的线或面,消除二义性,绘制出意义明确 ...

  2. 基于MVS的三维重建算法学习笔记(二)— 立体视觉的几何基础总结

    基于MVS的三维重建算法学习笔记(二)- 立体视觉的几何基础总结 声明 概述 1. 常见三维数据类型 2. 三维形状的几种表达形式 3. 三维空间刚体运动 4. 李群和李代数 5. 相机标定 6. 非 ...

  3. 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置

    基于MVS的三维重建算法学习笔记(一)- MVS三维重建概述与OpenMVS开源框架配置 声明 1. MVS(Multi-view stereo)概述 稀疏重建与稠密重建的区别 稀疏重建--SFM(S ...

  4. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  5. Manacher算法学习笔记 | LeetCode#5

    Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...

  6. 数据结构与算法学习笔记之 从0编号的数组

    数据结构与算法学习笔记之 从0编号的数组 前言 数组看似简单,但掌握精髓的却没有多少:他既是编程语言中的数据类型,又是最基础的数据结构: 一个小问题: 为什么数据要从0开始编号,而不是 从1开始呢? ...

  7. 输出dag的所有拓扑排序序列_算法学习笔记(53): 拓扑排序

    拓扑排序是对DAG(有向无环图)上的节点进行排序,使得对于每一条有向边 , 都在 之前出现.简单地说,是在不破坏节点 先后顺序的前提下,把DAG拉成一条链.如果以游戏中的科技树(虽然名字带树,其实常常 ...

  8. 算法学习笔记:对指定金额计算最少钞票数

    算法学习笔记:对指定金额计算最少钞票数 一.引出问题 财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少.例如,某职工工资为3 ...

  9. matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记

    关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...

最新文章

  1. AD18-画PCB步骤-总结
  2. 上传文本到hdfs上的一些命令
  3. iPad如何越狱?4.2.1完美越狱教程 一 (DFU 绿霸越狱)
  4. 数据库 CURD测试题【中等】
  5. 常量数组 python_python数据科学系列:numpy入门详解教程
  6. 实现两个N*N矩阵的乘法,矩阵由一维数组表示
  7. 放苗机器人_智能化种植系统所用苗盘摆收机器人的制作方法
  8. 判断360浏览器极速和兼容模式
  9. 谷歌搜索组建discuz!_Google的热门搜索结果? 惊喜! 是谷歌
  10. 浅谈对统计机器学习的认识
  11. UE-战斗无止境的复刻
  12. java MP4视频压缩
  13. FPGA 任意分频器设计
  14. nginx 安装,配置
  15. python 远程桌面爆破,python 3389爆破机
  16. 听说这样学JNI,效果不是一般的好
  17. mysql生成饼状图_ECharts制作饼状图
  18. 雨水情监测及大坝安全监测设施有哪些?
  19. 计算机专业怎么选高考312,新高考312模式高中生该如何选科
  20. 三星n7102刷android5,三星N7102 恢复官方兼救砖(安卓4.3)

热门文章

  1. '' and 'and' difference in python
  2. K-means 聚类算法的图像区域分割
  3. 强化学习组队学习task04—— DQN 算法及 Actor-Critic 算法
  4. 用TensorFlow训练一个目标检测器(手把手教学版)
  5. 两个变量相乘_自动控制原理-信号流图与系统状态变量传递函数之间联系如此紧密...
  6. vnc服务器注销了怎么登陆_vnc登录服务器常见问题
  7. html 悬停显示标题,JS实现TITLE悬停长久显示效果完整示例
  8. python float 精度_改变Float的精度并在Python中存储
  9. md 阅读器_职场办公神器:文石BOOX Nova Pro 电子书阅读器测评
  10. 微信messageutil.java_java微信公众平台开发回复文本消息