您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 计算机图形学第6讲走样与反走样及字符处理
中南大学地球科学与信息物理学院GIS中心1第7讲走样与反走样和字符处理2走样现象走样(aliasing)用离散量(像素)表示连续的量(图形)而引起的失真,称为走样,或称为混淆光栅图形的走样现象阶梯(锯齿)状边界图形细节失真狭小图形遗失:动画序列中时隐时现,产生闪烁3(1)阶梯状的图形边界像素间距大线画图元填充图元边界实例4(2)图形细节失真显示图形的最小单位为像素细长的矩形显示后成了加宽的矩形更细的矩形将丢失5(3)狭小图形的遗失与动态图形的闪烁多边形分布在像素间,不覆盖像素中心,不被显示狭小图形运动时,会间隔覆盖像素的中心,产生闪烁6反走样方法反走样(antialiasing)在图形显示过程中,用于减少或消除走样(混淆)现象的方法方法提高分辨率方法非加权区域采样加权区域采样7(1)提高分辨率的反走样方法方法简单,但代价非常大显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的4倍,而扫描转换同样大小的图元却要花4倍时间8(2)非加权区域采样方法扫描转换线段的两点假设像素是数学上抽象的点,它的面积为0,它的亮度由覆盖该点的图形的亮度所决定直线段是数学上抽象直线段,它的宽度为0现实像素的面积不为0;直线段的宽度至少为1个像素;假设与现实的矛盾是导致走样出现的原因之一9解决方法:改变直线段模型,线上像素灰度不等方法步骤1、将直线段看作具有一定宽度的狭长矩形;2、当直线段与某像素有交时,求出两者相交区域的面积;3、根据相交区域的面积,确定该像素的亮度值10方法性质直线段对一个像素亮度的贡献与两者相交区域的面积成正比当直线段和某个像素不相交时,它对该像素的亮度无影响相同面积的相交区域对像素的亮度贡献相同,而与这个相交区域落在像素内的位置无关关键:如何计算相交面积?11计算相交区域的面积(a)面积=D2/2k(b)面积=D–k/2像素实际显示的灰度值=所得面积*该像素的最大灰度值D/kDDk假设线段斜率为k像素实际大小DD(c)面积=1-(1-D)2/k12求相交区域的近似面积的离散计算方法将屏幕像素分割成n个更小的子像素;计算中心点落在直线段内的子像素的个数,记为m,m/n为线段与像素相交区域面积的近似值例目的:简化计算n=16,m=3近似面积=3/1613存在的不足像素的颜色或灰度值与相交(覆盖)区域的面积成正比,而与相交区域落在像素内的位置无关,仍会导致锯齿效应沿理想直线方向的相邻两个像素的颜色或灰度值会有较大差异14(3)加权区域采样方法权函数w(x,y)以像素A的中心为原点建立二维坐标系w(x,y)反应了微面积元dA对整个像素亮度的贡献大小,与dA到像素中心距离d成反比。高斯函数dyxw1),(222222exp212exp21),(yxdyxw15权性位于(x,y)处的微面积元dA对像素的亮度的贡献为w(x,y)dA相交区域对该像素的亮度贡献1),(AdAyxwwxydAA(,)A16实现步骤1.求直线段与像素的相交区域2.计算的值3.上面所得到的值介于0、1之间,用它乘像素的最大灰度值,即设该像素的显示灰度。问题:计算量大特例:时,的面积AdAyxwA),(加权区域采样方法退化为非加权区域采样方法AwxydAA(,)17离散计算方法1.将屏幕像素均匀分割成m个子像素,则每个子像素的面积为计算每个子像素对原像素亮度的贡献,记为将保存在一张加权表中2.求出所有中心落于直线段内的子像素,记为3.计算所有这些子像素对原像素亮度贡献之和。该值乘以像素的最大灰度值即为像素的显示灰度值Aiim1dAmAi1iAidAyxww),(wiim1的子集,,为miAi,21,:wii18w(x,y)是一个经验函数,对应的也是经验值w(x,y)可以用加权表M表示,取法有M=3×3M=5×5wiim1124212565246864256522142188125242322212019181716151413121110987654321例加权表16/516/)221(iiw},,{100100AAA1个像素分解成3×3个子像素加权区域采样:非加权区域采样:s=3/920字符字符指数字、字母、汉字等符号。计算机中字符由一个数字编码唯一标识。国际上最流行的字符集:“美国信息交换用标准代码集”,简称ASCII码。它是用7位二进制数进行编码表示128个字符;包括字母、标点、运算符以及一些特殊符号。21汉字编码的国家标准字符集:“中华人民共和国国家标准信息交换编码”GB2312-80。该字符集共收集字符7445个,其中国标一级汉字3755个,国标二级汉字3008个,其余符号682个,每个字符由一个区码和一个位码共同标示。为了能够区分ASCII码与汉字编码,采用字节的最高位来标识:最高位为0表示ASCII码;最高位为1表示表示汉字编码。22字库为了在显示器等输出设备上输出字符,系统中必须装备有相应的字库字库中存储了每个字符的形状信息字库分为矢量型和点阵型两种,相应存储着矢量字符和点阵字符23点阵字符字符利用掩膜来定义,并将其写入帧缓冲器保存和显示。字符掩膜是包含表示该字符的像素图案的一小块光栅点阵。该点阵中的某位为1表示字符的笔画经过此位,对应于此位的象素应置为字符颜色。某位为0表示字符的笔画不经过此位,对应于此位的像素应置为背景颜色。1111110001010101010101010111110001010101010101011111110000000000字符B的像素显示字符B的掩膜24在实际应用中,有多种字体(如宋体、楷体等),每种字体又有多种大小型号,因此字库的存储空间是很庞大的。解决这个问题一般采用压缩技术点阵字符的显示分为两步首先从字库中将它的位图检索出来然后将检索到的位图写到帧缓冲器中当字符写入帧缓冲器后,还可以对字符掩膜进行修改,以获得不同字体或方向25矢量字符记录字符的笔画信息,而不是整个位图,具有存储空间小,美观、变换方便等优点对于字符的旋转、缩放等变换点阵字符的变换需要对表示字符位图中的每一像素进行矢量字符的变换只要对其笔画端点进行变换就可以字符B的像素显示字符B的矢量轮廓26矢量字符的显示首先从字库中将它的字符信息然后取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符矢量字符不仅可用于显示,也可用于绘图机输出27字符属性单个字符属性字高宋体宋体宋体宋体字宽字倾斜角倾斜倾斜对齐(左对齐、中心对齐、右对齐)字色红色、绿色、蓝色....文本属性字体宋体仿宋体楷体黑体隶书文本高度/宽度对齐方式....28字符裁剪基于字符串裁剪整个字符串完全落在窗口之内时显示,否则不显示字符串的矩形包围盒测试29基于字符裁剪一个字符完全落在窗口之内时显示,否则不显示字符的矩形包围盒测试30基于矢量/像素裁剪点阵字符:通过比较各个像素与裁剪窗口的相对位置来处理矢量字符:用直线裁剪算法处理
本文标题:计算机图形学第6讲走样与反走样及字符处理
链接地址:https://www.777doc.com/doc-2042376 .html