在图像处理中的模糊效果常常可以使用均值模糊中值模糊高斯模糊
这里主要记录一下对UnityShader入门精要中高斯模糊的理解。

高斯滤波:

G ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 G(x,y) = \frac{1}{2\pi\sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}} G(x,y)=2πσ21​e−2σ2x2+y2​
x , y x, y x,y 对应当前位置到卷积核中心的整数距离。通过高斯滤波,我们可以计算当前位置对中心位置的像素权重贡献。

1. 降低时间复杂度

这里对时间复杂度降低的策略进行的一个理解。

首先假设有一个 5 × 5 5\times5 5×5 的高斯核矩阵 A 5 × 5 A_{5\times5} A5×5​ ,其中 A i j A_{ij} Aij​ 就是通过高斯滤波算出来的 { i , j } \{ i,j\} {i,j} 处的权重值,为了图像权重加起来为1以防止图像变暗,因此还需要做归一化处理。
如果按照 A A A 矩阵来实现高斯模糊,那么需要采样 N × N × W × H N\times N\times W\times H N×N×W×H 次,其中 W , H W,H W,H是图像的高宽。
有趣的地方来了,通过计算发现,我们可以先对水平方向采样 N × W × H N\times W\times H N×W×H 次, 获得在水平方向上的权重值 B B B,然后再对 B B B 在竖直方向上采样 N × W × H N\times W\times H N×W×H 次,获得 C C C。通过这两步操作得到的结果和直接采样 N × N × W × H N\times N\times W\times H N×N×W×H 次是一样的。但是后者总共只需要采样 2 × N × W × H 2\times N\times W\times H 2×N×W×H 次。

仔细观察可以发现:
C × B = A C \times B = A C×B=A

UnityShader-高斯模糊相关推荐

  1. UnityShader入门精要-屏幕后处理效果 亮度饱和度对比度、边缘检测、高斯模糊、bloom效果、运动模糊

    (从这里开始可能会记录的更简略一些,时间紧张想迅速读完这本书的主要内容,可能有的部分不会自己上手做) 屏幕后处理通常指渲染完整个场景得到屏幕图像后,再对图像进行操作,抓取屏幕可以使用OnRenderI ...

  2. UnityShader - 屏幕特效 - 高斯模糊(Gaussian Blur)

    高斯模糊(Gaussian Blur) 高斯模糊Gaussian Blur 概述 原理 游戏中对高斯模糊的优化 shader代码实现 总结 概述 在电子世界中常常会接触到高斯模糊,它常出现在图像处理的 ...

  3. UnityShader实例14:屏幕特效之高斯模糊(Gaussian Blur)

    高斯模糊(Gaussian Blur) 概述 高斯模糊(Gaussian Blur),也叫高斯平滑,在photoshop中也有高斯模糊滤镜,通常用它来减少图像噪声以及降低细节层次.从数学的角度来看,图 ...

  4. UnityShader基础案例(三)——外发光(泛光)和内发光

    基于菲涅尔反射来判断边缘所在. Shader "Custom/Test0" {Properties{_MainColor("主颜色",Color)=(0,0,0 ...

  5. unity-shader相关

    title: unity-shader相关 categories: Unity3d-Shader tags: [unity, shader] date: 2017-09-12 10:05:18 com ...

  6. 高斯模糊与高反差保留

    目前很多教程都以实例为主,很多朋友看了教程也跟着教程做出了与教程相同或相似的效果,也有很多朋友有这样一个疑问:为什么要这样做呢? 其实实例教程只说了操作步骤及思路,对于基础的理论很少提及!所以难怪很多 ...

  7. UnityShader入门精要-3.3 UnityShader的结构

    一个UnityShader的基础结构如下所示: Shader "ShaderName"{Properties{//属性 } SubShader{//显卡A使用的子着色器 }SubS ...

  8. 【opencv】边缘高斯模糊(canny+dilate+GaussianBlur)Python实现

    简述 在Cartoon GAN的实现中提到了这种思想.但是在网上没有找到对应的实现,就自己研究了一波. 处理思路 Canny边缘提取 用dilate做膨化,用一个粗颗粒,再用一个细颗粒 粗颗粒的膨化结 ...

  9. Unity Shader 屏幕后效果——高斯模糊

    高斯模糊是图像模糊处理中非常经典和常见的一种算法,也是Bloom屏幕效果的基础. 实现高斯模糊同样用到了卷积的概念,关于卷积的概念和原理详见我的另一篇博客: https://www.cnblogs.c ...

  10. opencv 高斯模糊

    opencv 高斯模糊 import numpy as np import cv2 from scipy import ndimagek33=np.array([[-1,-1,-1],[-1,8,-1 ...

最新文章

  1. OpenCV中 Mat 按行或按列合并程序
  2. 802.11 Power Save(节电/省电/节能)机制总结
  3. class mywnd : pubic qwidget是什么意思_学了这么久java反射,你知道class.forName和classloader的区别吗?...
  4. 4.4 使用STM32控制MC20进行GPS帧数据解析
  5. java诸神之战游戏_mj回溯算法 - osc_7bgz0no1的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. 写入接口c语言_PYNQ: 使用CFFI嵌入C语言
  7. 操作系统课设之Windows 进程管理
  8. 队列 开源 php,消息队列 - 基于think-queue消息队列 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  9. elasticsearch组合查询
  10. GPFS文件系统笔记
  11. System V消息队列
  12. 如何使用Magoshare Data Recovery在mac上恢复找回删除的丢失文件?
  13. MOEA/D算法原理及应用方向
  14. 软件工程-实践者的研究方法第八版(不全)
  15. 课后自主练习(排序)1019. 文件排序 easy《编程思维与实践》个人学习笔记
  16. Spring Cloud Netflix Eureka Server 搭建服务注册中心
  17. 计算机输入输出方式的应用,[原创]计算机组成原理之输入输出系统题目及解答...
  18. (转载)多少年来心血的结晶
  19. 这些例子感觉很实用,希望对你也有帮助
  20. 微信小程序 —— 苹果机的兼容总结

热门文章

  1. 计算机和互联网的英语演讲,英语演讲---关于互联网
  2. 问道手游服务器维护,问道手游停服维护公告
  3. 水库大坝安全检测平台实例分析+辽阳市水库大坝安全检测平台+志豪未来科技有限公司+陈志豪
  4. 一个未知的项目被声明为你的MXML文件的根。切换到源代码模式加以纠正。
  5. 谷歌离线地图的使用(1)
  6. 邮政平邮/小包多个单号的物流信息是怎么同时查询的
  7. 什么是 TF-IDF 算法?
  8. Mysql数据库的安全策略
  9. python如果否则_Python传递参数(如果已定义),否则使用defau
  10. 区块链和公益怎么如何融合到一起