1 / 26

第四章 输出图元的属性

第四章 输出图元的属性. 颜色属性. RGB 颜色编码 RGB 0~1 颜色表 灰度 颜色的运算 颜色调和 OpenGL 颜色显示模型 RGB 定义 RGB 的值 RGBA 增加一个透明参数 0-1 ,背景色和前景色的绘制 Index 使用颜色查找表中的颜色. 颜色查找表( color lookup table). C M Y. 1- R =1- G 1- B. 扫描线多边形填充算法. 基本思想 求扫描线与多边形的交点的 x 坐标;

Download Presentation

第四章 输出图元的属性

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 输出图元的属性

  2. 颜色属性 • RGB 颜色编码 RGB 0~1 • 颜色表 • 灰度 • 颜色的运算 颜色调和 • OpenGL 颜色显示模型 RGB 定义RGB的值 RGBA 增加一个透明参数 0-1,背景色和前景色的绘制 Index 使用颜色查找表中的颜色

  3. 颜色查找表(color lookup table)

  4. C M Y 1- R =1- G 1- B

  5. 扫描线多边形填充算法 • 基本思想 • 求扫描线与多边形的交点的x坐标; • 对x坐标排序,成对的提取交点,在二交点之间填充 • 奇点处理 • 局部最高点、局部最低点

  6. 奇点处理 • 较低或较高一条边缩短一条扫描线 Y+1 y Y-1

  7. 扫描线多边形填充算法 • 扫描线与多边形的交点的三种情况 • 相邻扫描线与同一边交点的坐标相关性 Y+1 y x X+1/m

  8. 活化边表的实现方法 • 边表 Edge Table • 水平边不存储; • 按最小y值排序; • 解决奇点问题; • 同一y按x坐标 由小到大排序; • 存储筒 ymin ymax xc 1/m pointer 最低点x的坐标 • 活化边表 Active Edge Table

  9. 活化边表填充算法步骤 • 建立边表 • 处理 • 从最低扫描线开始,建立活化边表; • 将当前处理的边加入该表; • 求扫描线与边的交点,成对的提取交点,对两交点之间的部分填充; • 修改活化边表Xk+1=xk+1/m • 删除活化边表中到达尾部的边;重复②~⑤直到活化边表为空。

  10. (1,10) (7,7) (3,3) 11 10 (5,1) (1,1) 9 8 7 6 5 4 10 3 -2/7 7 3 1 ∧ 3 2 10 1 0 7 5 1/3 ∧ 1 0

  11. 算法步骤 活化边表 y=1 Y=2 Y=3 Y=7 Y=8 Y=10 7 5 1/3 ∧ 10 1 0 10 1 0 10 3 -2/7 7 3 1 7 6 1/3 ∧ 7 7 1/3 10 1 0 10 2 -2/7 7 7 1 ∧ 10 1 0 10 2 -2/7 ∧ 10 1 0 10 1 -2/7 ∧

  12. 边界填充算法(种子填充算法)Boundary-fillSeed-fill边界填充算法(种子填充算法)Boundary-fillSeed-fill • 区域和内点(种子) • 边界为某一颜色 • 前景色(填充色) • 背景色 • 4-连通/8-连通 • 填充方法 • 种子填充算法 • 扫描线种子填充算法

  13. 种子填充算法 • 已知:种子像素( x,y ),填充色,背景色,边界色 • 种子像素进栈 • 退栈,(x,y)着色; • (x,y)上、下、左、右像素,不是边界,未填充,进栈; • 重复2~3直到栈空

  14. 泛滥填充算法flood-fill(扫描线种子填充算法)泛滥填充算法flood-fill(扫描线种子填充算法) • 种子像素进棧 • 填充棧中像素所在扫描线上的内部像素 • 上下扫描线上的左边界进棧; • 退棧,直到棧中无像素,重复①~③

  15. 扫描线种子填充算法

  16. 图案填充 2 1 2 1 2 1 2 1 2 4 0 0 4 • 设置一个Pattern(m,n) 0~m-1;0~n-1 [ ] [] • 设置一个初始位置参考点(xp, yp) • 任意点(x,y) Pattern _color(i,j) i=x-xp mod m j=y-yp mod n

  17. 软填充soft-fill • 填充色与背景颜色相结合的一种填充方法soft-fill或 tint-fill • 线性软填充 F为前景色 B为背景色 线性组合 P=tF+(1-t)B t 为透明系数 0~1 • 前景色与背景色的操作 与 或 异或

  18. 反走样Untialiasing • 走样aliasing 由于不充分取样而造成的信息失真 • 反走样:校正不充分取样的过程 取样频率低造成走样 • Nyquist采样定理 采样频率应为出现在对象中的最高频率的两倍。 fs=2fmax • 简单的方法:增加采样频率 提高分辨率 • 具有多级灰度的显示器 :改变边缘像素的亮度光顺边界 • 过取样: • 像素划分为子像素 • 计算区域覆盖

  19. 直线段的过取样 • 单线法 将像素分割为子像素, 统计沿线的子像素个数, (左下角在多边形内) 像素的亮度正比于子像素的个数。 例:如图像素分为3×3,亮度等级3 (10,20)亮度 3 • 区域法 将单线设置为线宽与 像素等宽,求覆盖子像素数 (左下角有效) 灰度等级9,(11,20)亮度等级5 与背景色的平均 Pixelcolor=(5*red+4*blue)/9

  20. 像素的加权掩模 • 希望直线的中心位置在确定整体亮度中有较大的贡献,即中心像素有较大的权。 • 方法: 建立子像素的加权掩模 如图:总权为16 适用区域法 1 2 1 2 4 2 1 2 1

  21. 过滤技术 • 构造过滤函数用一个连续的加权曲面 覆盖像素 例:

  22. 像素移相 • 可以对子像素编址的系统 将电子束移至更接近于几何指定的位置 可光顺沿线路径及边界的阶梯。

  23. 线亮度差的校正 • 斜线像素之间的距离大 • 水平与竖直线的亮度较小 • 45º斜线的亮度最大

  24. 反走样区域边界 • 使区域边界像素颜色较暗,从而消除台阶 • 边界像素按其在多边形区域内的 面积大小决定像素的亮度等级 图:三个子像素在多边形边界内 • 面积覆盖计算 计算梯形面积 中线=mxk+b-yk+0.5 高度为1 Yk+0.5 yk Yk-0.5 xk+0.5 xk xk-0.5

More Related