纹理滤波

使用纹素计算纹理颜色

计算机图形学中,纹理滤波(Texture filtering)是一种针对一个使用材质贴图的像素,使用临近的一个或多个纹素计算其纹理颜色的方法。从数学上来说,纹理滤波是抗锯齿的一种,但它更着重于滤掉纹理中的高频,而不像其他抗锯齿技术那样着重于改善边界显示效果。简单来说,它使得同一个纹理可以被用于不同的形状,尺寸和角度,同时尽可能减少显示时的模糊和闪烁。用户可以权衡计算复杂度和图像质量,在许多种纹理滤波方法中进行选择。

简介
图像传递着丰富的视觉信息,许多自然图像和人造艺术图像都包含纹理,例如一些墙壁和地铁上的徐鸦和绘画,地毯、毛衣等工艺品上包含的各种重复的图案。在人类历史上,拼接一直是一种表示人物或者动物等场景的艺术形式,往往使用的石头、玻璃、陶瓷等材料也构成了大量纹理区域。心理学认为,人类观察图像时,最先感知的是图像的整体结构,而不是纹理细节,可见图像的结构对于目标识别有着更重要的意义。但是很多图像本身都含有丰富的纹理,而且对比度可能很高,识别工作面临严峻挑战。而纹理滤波算法能够在一定程度上抑制不必要的纹理信息,突出图像的主干结构,该特性使得纹理滤波被更广泛地应用在细节增强、图像抽象、逆半调、结构提取等领域中。纹理滤波的核如是结构层和纹理层的分离,这也是图像处理与模式识别领域的一个难点问题。
近十几年,不断有一些新的边缘保持的滤波算法被提出。从宏观来看,可以大致分为两大类,第一类主要是基于局部的滤波方法,早期的工作包括各项异性扩散和双边滤波,研宄人员的不断努力,改进了双边滤波的效率,同时也产生了一些基于不同理论的滤波加速算法。虽然这些算法的效果在一定程度上有些改善,但是依然摆脱不了它们的局限性。另外一类方法是基于全局优化的技术框架,这类方法都有一个类似的框架,即都含有一个结构保真项和一个正则项,通过求解能量函数的最优解来实现。保真项约束输入和输出的偏差不能太大,使得平滑后的图像在结构上要和输入图像相类似;正则项又叫平滑项,目的是尽可能的平滑纹理。虽然这类基于全局的优化方法能取得优于其它局部滤波方法的效果,但是不可避免的会增加计算成本。即使一些加速技术不断发展,全局优化的效率仍比局部滤波要低一个数量级。另外,全局优化框架的效果很大程度上依赖于结构保真项和正则项两项的权值,参数很难设置。此外,在机器学习和人工智能的火热背景下,一些基于学习的滤波算法也相继被提出,并取得了不错的进展。总的来说不同的滤波方式适用于不同的纹理图像。
滤波方式
最近邻插值
最近邻插值是最快速,也是最粗糙的滤波方式。最邻近像素中心的纹素颜色将被作为像素的颜色。在纹理放大时,这种方式会导致色块;而在纹理缩小时,则会导致闪烁和锯齿。
最近邻Mipmapping
这种方式先根据距离选择最近的mipmap层级,再从其中选择最靠近像素中心的纹素。这对闪烁和锯齿很有效,但不能减少色块。Mipmapping是一种常见的通过预计算减小渲染时所需滤波工作的方法。在纹理放大中,所参与计算一个像素的纹理值的纹素一般是四个或更少;而在纹理缩小中,随着目标表面远离视点,整个纹理尺寸可能最终将比一个像素还小,这将造成需要其上的所有纹素进行计算,这样造成的计算量和带宽在实时渲染中是不现实的。Mipmapping通过进行预计算,并将结果存储在一系列更小尺寸的纹理中,避免了这种情况的发生。当目标表面逐渐远离时,更小尺寸的纹理将自动被选用参与计算。
双线性滤波
双线性滤波会从最近的mipmap层次上,选择最靠近像素中心的四个纹素,再根据他们靠近像素中心的具体进行权重插值。这时如果进行纹理放大,当像素相对于纹素移动时,像素颜色会从逐渐从一个纹素颜色变化到相邻的纹素颜色,而不是像最近邻插值那样,在穿过两个纹素的边界时发生突变,这样就消除色块。双线性滤波经常与mipmapping一起使用,但也可以单独使用,但这时会出现闪烁和锯齿化的问题。
三线性滤波
在使用mipmapping双线性滤波时,当目标表面的距离变化时,会从一个mipmap层次突变到相邻的层次。三线性滤波被用来解决这个问题,方法是在最相邻的两个mipmap层次上分别进行双线性滤波,再用得到的两个值进行线性插值。值得注意的是,当距离小于mipmap的零层次时(即纹素大小超过像素大小时),三线性插值退化为双线性插值
各向异性滤波
各向异性过滤是现有消费级显卡所提供的图像质量最佳的滤波方式。传统的各项同性滤波中只是在正方形的mipmap层次间进行双线性或三线性插值,但是当一个目标表面和摄像机之间角度较大时,纹理的填充面积并不是正方形,这样便引入了模糊和闪烁等瑕疵。 于是,各向异性滤波需要对一个非方形纹理进行采样。在一些简单的实现中,显卡使用长方形的纹理取代方形纹理,达到了较好的近似效果。但是这种方式在处理边界时效果依然不理想,原因是在倾斜的表面上,近端边界比远端边界拥有更多的像素。于是一些高端显卡使用了梯形纹理,当然这也要求更大的运算量。
反锯齿
反锯齿,也译为抗锯齿或边缘柔化、消除混叠、抗图像折叠有损等。它是一种消除显示器输出的画面中图物边缘出现凹凸锯齿的技术,那些凹凸的锯齿通常因为高分辨率的信号以低分辨率表示或无法准确运算出3D图形坐标定位时所导致的图形混叠(aliasing)而产生的,反锯齿技术能有效地解决这些问题。它通常被用在在数字信号处理、数字摄影、计算机绘图与数码音效等方面,柔化被混叠的数字信号。由于高分辨率下的来源信号或连续的类比信号能够存储较多的数据,但在透过取样(sampling)时将较多的数据以较少的数据点代替,部分的数据被忽略造成取样结果有损,当机器把取样后的数字信号转换为人类可辨别的类比信号时造成彼此交叠且有损,在声音中,便会出现刺耳、不和谐的音调或是噪音。同样,在3D绘图时,每个图形由像素组成,每段瞬间画面由帧组成,因为屏幕上的像素有限,如果要表现出多边形的位置时,因技术所限,使用绝对坐标定位法是无法做到的,只能使用在近似位置采样来进行相对定位。由于没有足够的采样来表现出3D世界中的所有物品的图形,所以在最后图像显示上,这些现象便会造成在物品与物品中过渡的边缘就会产生波浪状、圆形、锯齿和闪烁等有损现象,严重影响了画面的质量。
有关联系
结构和平坦:结构反映了图像的显著性信息,其梯度较大;平坦区域一般是图像的背景或是填充在不同结构之间的光滑区域,其梯度很小。因,利用梯度信息就可以将二者进行区分。纹理和平坦:首先,两者都是指一片区域,不能说某个像素是纹理或平坦。
两者的主要区别还是在梯度上。纹理是一种重复模式的区域,这些区域的像素颜色值是波动的,表现为图像中就是梯度变化幅值较大,而平坦区域几乎波动不大。此外,若纹理的尺度足够小,纹理区域就近似于平坦区域。
结构和纹理:二者从梯度上很难进行区分,有强梯度的纹理,也有弱梯度的结构。两者的差异主要反映在重复模式上。纹理是重复模式的区域,结构是稀疏的单一线条。而且纹理和结构都是相对而言的,同一块区域,近处看是结构,远看可能就是纹理。所以,在区分结构和纹理时,需要考虑尺度信息,这是度量结构纹理差异性的重要因素。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市