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

高斯模糊(Gaussian Blur)

概述

在电子世界中常常会接触到高斯模糊,它常出现在图像处理的软件里,只是你们不知道它的名字而已。接触过photoshop的同学一定对它不陌生,在这些同学的印像里就是一种效果不错的模糊方式。从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积,由于正态分布又叫做高斯分布,所以这项技术又叫做高斯模糊。

“高斯” 为什么前面带有这么洋气的名字。因为这种模糊的方式与一个叫高斯数学方程有关。没错,和一般的数学定理命名方式一样,高斯是它的命名者。他的名字叫Johann Carl Friedrich Gauss,是一位德国的数学家,当然他还有其它的头衔,有兴趣可以看这里

模糊算法,不论是使用哪种算法,目的都是为了让图片看起来不如原来那么清晰。清晰的图片,像素间的过渡会较为干脆利落,简而言之,就是像素之间的差距比较大。
而模糊的本质,其实就是使用某种算法把图像像素和像素之间的差距缩小,让中间点和周围点变得差不多;即,让中间点取一个范围内的平均值。

原理

高斯模糊和均值模糊一样,也是取每个像素以及周边像素的平均值,只不过高斯模糊在取值是离原像素越远的像素权重越低,而均值模糊则所有像素的权重相等,因此从计算量上来说,采用相同阶数的高斯模糊计算量要比均值模糊要大,但是模糊效果要更好,由于没有明显的边界,不会出现均值模糊会出现的方块化效果。高斯模糊的权重计算时根据正态分布来计算的,它在N维空间的正态分布方程为:

一维高斯分布,即正态分布曲线,形状大概如下图:
一维正态分布
图片来源:http://zh.wikipedia.org/wiki/File:Standard_deviation_diagram.svg
- 二维函数G(x,y),其中r是模糊半径(r²=x²+y²):

G(x,y)=12πσ2ex2
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua并没有内置的图形处理库,但你可以使用一些外部库来实现高斯模糊后期特效。下面是一种基于Lua和LÖVE游戏引擎的实现方法: 1. 首先,在你的Lua脚本中引入LÖVE游戏引擎的库: ```lua local love = require("love") ``` 2. 创建一个新的LÖVE游戏窗口并设置其渲染函数: ```lua function love.load() love.window.setMode(800, 600) end function love.draw() -- 在这里绘制你的场景 end ``` 3. 在渲染函数中,使用LÖVE的`love.graphics`模块来进行高斯模糊后期特效的处理。你可以使用`love.graphics.captureScreenshot()`函数来获取当前屏幕的截图,然后使用滤波算法对图像进行高斯模糊处理,最后再将处理后的图像绘制到屏幕上。 ```lua function love.draw() -- 获取屏幕截图 local screenshot = love.graphics.captureScreenshot() -- 对截图进行高斯模糊处理 local blurryScreenshot = applyGaussianBlur(screenshot) -- 绘制模糊后的截图 love.graphics.draw(blurryScreenshot, 0, 0) end ``` 4. 实现`applyGaussianBlur()`函数来执行高斯模糊算法。你可以使用一些图像处理库,比如`lua-gd`或者`LuaJIT-FFI-Image`来进行图像处理。以下是一个使用`lua-gd`库的示例: ```lua function applyGaussianBlur(image) local gd = require("gd") -- 将截图转换为gd库中的图像对象 local imageData = gd.createFromPngStr(image:encode("png"):getString()) -- 对图像应用高斯模糊滤波器 imageData:gaussianBlur(5) -- 调整模糊程度,这里使用半径为5的高斯模糊 -- 将处理后的图像转换回LÖVE的图像对象 local blurryImage = love.graphics.newImage(love.image.newImageData(imageData:string())) return blurryImage end ``` 请注意,以上代码只是一个示例,具体的实现方式和库可能会因你的项目环境和需求而有所不同。你可以根据自己的需要选择适合的图像处理库和参数来实现高斯模糊后期特效

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值