计算机图形学-GAMES101-6

news/2024/7/21 4:27:02 标签: 计算机视觉, 人工智能, 图像处理

一、前情提要

  • 在观察和投影变换的基础上提出了视口变换,最终我们会将【-1,1】^ 3 立方体转换到屏幕空间中去。
    在这里插入图片描述
  • 当所有图像都在屏幕空间中时,我们就要将所有的图像画在屏幕上,这个过程就是光栅化,光栅化就是简单的在屏幕空间的采样。最重要的思想:我们要用像素的中心,对三角形可见函数进行采样。

二、走样与反走样

(1)问题的提出

 绘制下图中的三角形。
在这里插入图片描述

 检查像素是否在三角形内(进行采样):
在这里插入图片描述
 根据采样结果进行成像:
在这里插入图片描述
 对比原三角形,成像结果与预期差距很大,并且生成的三角形是有锯齿的。

(2)走样的例子

  • 下图是采样中产生的一种走样在这里插入图片描述

  • 下图是采样中产生的另一种走样:摩尔纹。如下图所示,对坐边原图去掉奇数行和奇数列,再展示同样大小的图像就得到了右边的图像。
    在这里插入图片描述

  • 动画和视频是对图像在时间上的采样,下图为在时间中采样产生的走样。在这里插入图片描述

  • 走样的本质:信号(函数)变换速度太快,导致采样的速度跟不上变换的速度。

(3)反走样的核心思想

 反走样第一步:对原始的图像或信号做一个模糊或滤波
在这里插入图片描述
 直接采样的走样情况:
在这里插入图片描述
 模糊(反走样)后采样的情况:
在这里插入图片描述
 Blurred Aliasing走样后模糊,会导致情况更加糟糕。

三、反走样的本质

(1)从频率上分析走样

  • 频域(Frequency Domain)和频率(Frequency)
    在这里插入图片描述

  • 通过傅里叶变换,我们可以知道:任何周期函数,都可以看作是不同振幅,不同相位正弦波的叠加。因此我们可以将函数变成不同频率的段,并且我们把不同频率的段显示出来。

  • 下图中有五段不同频率的函数,越往下函数的频率越高。
    在这里插入图片描述

  • 我们采取同样的频率对以上五个函数采样结果如下:
    在这里插入图片描述

  • 可以看到到f5时采样效果非常差,这告诉我们采样频率要根据函数本身的频率来决定,如果函数本身频率很高而采样频率很低就会发生走样,无法恢复出原始的信号。

(2)定义走样

  • 走样的定义:对两种频率不同的信号进行采样,根据得到的结果我们无法区分它们。
  • 下图中我们可以看到两条曲线,它们分别对应两条原始信号,如果我们使用图中圆圈的点去采样这两条原始信号,会得到相同的采样结果,这就是走样。
    在这里插入图片描述

(3)Filtering滤波

  • 滤波:删除原始信号中频率位于一定区间的波。

  • 通过傅里叶变换得到信号的频域图(频谱)
    在这里插入图片描述

  • 删除频域图中低频的信号,即进行高通滤波(高频通过),然后再进行逆傅里叶变换将频域图还原回原始的信号,如下图左边所示。下图右边频域图中心变黑就是抹除了低频信号,留下的高频信号属于图像的轮廓(因为轮廓出信息变换的很快)。
    在这里插入图片描述

  • 低通滤波,如下频域图所示,过滤掉所有的高频信号后,再逆傅里叶变换得到的图像如左图所示,保留了内容但是少掉了轮廓:
    在这里插入图片描述

  • 提取频率位于固定区间(不高但也不低)的信息:
    -

(4)滤波-平均-卷积

 做一个卷积操作:
在这里插入图片描述
 可以直接对图像进行卷积操作。也可以先把图像通过傅里叶变换转到频域上,然后把卷积也转到频域上,再相乘再逆傅里叶变换。时域的卷积等于频域的乘积。
在这里插入图片描述

(5)分析采样的本质

 原始信号为a,采样的一些列冲击函数为c,得到的采样结果为e。又因为时域上的乘积等于频域上的卷积,采样就是在重复一个原始信号的频谱,如下图中右边所示采样就是重复复制原始信号的频谱。
在这里插入图片描述
 正常采样与走样如下图所示,如下图圈中所示,走样就是在重复复制原始信号的频谱时导致了重叠。
在这里插入图片描述
 分辨率的提高有利于降低走样的发生。

(6)定义反走样

 经过上面的阐述,我们先对原始信号进行低通滤波,这样我们再进行采样,就不容易发生走样。即先进行模糊,再进行采样,这就是反走样。
在这里插入图片描述
 在实际操作中,我们应该如何模糊一个三角形?我们用一定大小的滤波器对图像进行卷积,达到模糊操作。

(7)MSAA反走样技术

 现在回到三角形,之前我们对于每个像素的采样函数仅判断它是否被覆盖,覆盖了就涂颜色,没覆盖就不涂,而现在我们为了反走样要进行模糊。
 我们根据像素方格被三角形覆盖的面积去决定它的颜色,这样它就不至于要么是涂满颜色的,要么是没有颜色的,这样我们的采样函数就也能涉及一些"像素中心点未覆盖,但像素方格被覆盖"的像素点,以达到模糊三角形边缘区域的目的。
 如果一个像素点被完全覆盖,那么我们就给它100%三角形对应区域的颜色,如果只被覆盖了一般,那就给它50%三角形对应区域的颜色。如下图所示:
在这里插入图片描述
 那么我们如何得到每一个像素方格被三角形覆盖的面积呢?MSAA近似反走样。如下图所示,我们在像素方格中内置更多采样点,通过计算内部采样点的覆盖率去近似计算出 像素方格被三角形覆盖面积的占比。
在这里插入图片描述
 使用MSAA反走样(模糊)的示意图如下:
在这里插入图片描述
 模糊操作完成后得到的信息:
在这里插入图片描述
 MSAA其实隐含了采样,因为上图我们已经可以得到颜色占比,采样是再乘以三角形颜色值即可。

(8)MSAA反走样的代价

 MSAA的代价:增大了计算量,如果使用4×4的采样点,则增大了16倍的计算量。在工业上会用不同的图案去分布采样点,并且一个采样点会被其他像素复用。

(9)其他的抗锯齿方案

 FXAA,原理:后期处理。得到有锯齿的图,找到有锯齿的边界,换成没有锯齿的边界。
 TAA,复用上一帧的颜色值,即把MSAA计算的的颜色分布在了时间商。
 超分辨率:把低分辨率图像转换成高分辨率图像,例如把512×512变成1024×102,要解决的也是采样率不足。但是这些未知的值要去猜,一般使用AI深度学习。


http://www.niftyadmin.cn/n/331598.html

相关文章

滨州高企认定条件

认定为高新技术企业必须同时满足以下条件: (一)企业在申请认定时需要注册一年以上。 (二)公司通过自主开发、转让、赠与、并购等方式,获得对其主要产品(服务)在技术上发挥核心支持作用的知识产权所有权。 (三)对企业主要产品(服…

解析springboot的@RestControllerAdvice和@ExceptionHandler处理全局异常

文章目录 摘要全局异常处理Spring底层实现Spring伪代码 摘要 本文讨论 Spring Boot 中的 RestControllerAdvice 注解及其作用。RestControllerAdvice 注解用于定义全局异常处理器和全局数据绑定设置。它标记的类可以处理全局范围内的异常,并根据定义的处理方法执行…

公司新招了个字节拿36K的人,让我见识到了什么才是测试扛把子......

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…

实验室信息管理系统源码,LIS系统源码

云LIS系统是医院信息管理的重要组成部分之一,系统集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。LIS系统不仅是自动接收检验数据,打印检验报告,系统保存检验信息的工具,而…

【教程】Warp/ZeroTrust 1.1.1.1 域名解析服务的安装与使用

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 目录 扫盲 安装 验证 说明 扫盲 1.1.1.1是一款免费的域名解析服务,也就是域名服务器,由CloudFlare与APNIC共同拥有与维护。该服务于2018年4月1日发表启用,且被Cloudflare称…

苹果手机通话怎么录音?通话录音的详细教程!

案例:iPhone怎么一边通话一边录音? 【苹果手机通过普通的方式不能边通话边录音,有什么方法可以帮到我吗?感谢!】 录制通话可以帮助用户记录重要的电话内容,如商务谈判、家庭事务等。但是录音涉及隐私&…

百度工程师移动开发避坑指南——内存泄漏篇

作者 | 启明星小组 在日常编写代码时难免会遇到各种各样的问题和坑,这些问题可能会影响我们的开发效率和代码质量,因此我们需要不断总结和学习,以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结,以提高大家的开…

prometheus监控redis集群并显示到granfana面板

prometheus监控redis集群 监控redis1,在redis机器上安装redis_exporter2,配置prometheus配置文件3,设置redis maxmemory4,导入redis监控模板736 监控redis 1,在redis机器上安装redis_exporter 下载,安装r…