GLSL学习_高斯滤波
使用RenderMonkey:
从自带的sobel修改的。
vertex:
uniform float height;
varying vec4 vTexCoords00;
varying vec4 vTexCoords01;
varying vec4 vTexCoords02;
varying vec4 vTexCoords10;
varying vec4 vTexCoords11;
varying vec4 vTexCoords12;
varying vec4 vTexCoords20;
varying vec4 vTexCoords21;
varying vec4 vTexCoords22;
void main(void)
{
vec4 Pos = gl_Vertex;
gl_Position = vec4(Pos.xy,, );
vec4 BaseTexCoord;
BaseTexCoord.x = 0.5 * (1.0 - Pos.x);
BaseTexCoord.y = 0.5 * (1.0 + Pos.y);
BaseTexCoord.zw = vec2(0.0, 1.0);
float vOffset = (1.0 / height);
vTexCoords00 = BaseTexCoord + vec4(-vOffset, -vOffset, 0.0, 0.0);
vTexCoords01 = BaseTexCoord + vec4( 0.0, -vOffset, 0.0, 0.0);
vTexCoords02 = BaseTexCoord + vec4( vOffset, -vOffset, 0.0, 0.0);
vTexCoords10 = BaseTexCoord + vec4(-vOffset, 0.0, 0.0, 0.0);
vTexCoords11 = BaseTexCoord;
vTexCoords12 = BaseTexCoord + vec4( vOffset, 0.0, 0.0, 0.0);
vTexCoords20 = BaseTexCoord + vec4(-vOffset, vOffset, 0.0, 0.0);
vTexCoords21 = BaseTexCoord + vec4( 0.0, vOffset, 0.0, 0.0);
vTexCoords22 = BaseTexCoord + vec4( vOffset, vOffset, 0.0, 0.0);
}
Fragment:
uniform sampler2D BaseMap;
varying vec4 vTexCoords00;
varying vec4 vTexCoords01;
varying vec4 vTexCoords02;
varying vec4 vTexCoords10;
varying vec4 vTexCoords11;
varying vec4 vTexCoords12;
varying vec4 vTexCoords20;
varying vec4 vTexCoords21;
varying vec4 vTexCoords22;
void main(void)
{
vec4 s00; vec4 s01; vec4 s02;
vec4 s10; vec4 s11; vec4 s12;
vec4 s20; vec4 s21; vec4 s22;
s00 = texture2DProj(BaseMap, vTexCoords00);
s01 = texture2DProj(BaseMap, vTexCoords01);
s02 = texture2DProj(BaseMap, vTexCoords02);
s10 = texture2DProj(BaseMap, vTexCoords10);
s11= texture2DProj(BaseMap, vTexCoords11);
s12 = texture2DProj(BaseMap, vTexCoords12);
s20 = texture2DProj(BaseMap, vTexCoords20);
s21 = texture2DProj(BaseMap, vTexCoords21);
s22 = texture2DProj(BaseMap, vTexCoords22);
vec4 re=s00*0.0625+s01*0.125+s02*0.0625+
s10*0.1250+s11*0.250+s12*0.1250+
s20*0.0625+s21*0.125+s22*0.0625;
gl_FragColor = re;
}
GLSL学习_高斯滤波的更多相关文章
- OpenCV计算机视觉学习(4)——图像平滑处理(均值滤波,高斯滤波,中值滤波,双边滤波)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice &q ...
- [学习opencv]高斯、中值、均值、双边滤波
http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在ope ...
- 学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波
本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作.图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了"方框滤波","均值滤 ...
- OpenCV实现的高斯滤波探究_1(《学习OpenCV》练习题第五章第三题ab部分)
首先看下OpenCV 官方文档对于cvSmooth各个参数的解释: Smooths the image in one of several ways. C: void cvSmooth(const C ...
- SIFT四部曲之——高斯滤波
本文为原创作品,未经本人同意,禁止转载 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 或 ...
- Atitit 图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)
Atitit 图像处理 平滑 也称 模糊, 归一化块滤波.高斯滤波.中值滤波.双边滤波) 是一项简单且使用频率很高的图像处理方法 用途 去噪 去雾 各种线性滤波器对图像进行平滑处理,相关OpenC ...
- python学习_数据处理编程实例(二)
在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...
- Linux操作系统学习_操作系统是如何工作的
实验五:Linux操作系统是如何工作的? 学号:SA1****369 操作系统工作的基础:存储程序计算机.堆栈(函数调用堆栈)机制和中断机制 首先要整明白的一个问题是什么是存储程序计算机?其实存储程序 ...
- 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1. 背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...
随机推荐
- MySQL 百万级分页优化
MySQL 百万级分页优化 http://www.jb51.net/article/31868.htm 一般刚开始学SQL的时候,会这样写 : , ; 但在数据达到百万级的时候,这样写会慢死 : , ...
- UVA 11076 Add Again 计算对答案的贡献+组合数学
A pair of numbers has a unique LCM but a single number can be the LCM of more than one possiblepairs ...
- Java集合框架(四)
Collections 集合框架的工具类 着重讲解以下方法: 1.sort(): 1º根据元素的自然顺序对指定列表按升序进行排序,列表中的所有元素都必须实现comparable接口. pu ...
- ffplay 中filter的使用
添加字幕:ffplay -vf drawtext="fontfile=arial.ttf: text='Test Text': x=100: y=300: \ fontsize=48: fo ...
- I,P,B帧和PTS,DTS的关系
http://www.cnblogs.com/qingquan/archive/2011/07/27/2118967.html 基本概念: I frame :帧内编码帧 又称intra picture ...
- HTTP返回码总结
HTTP协议状态码表示的意思主要分为五类,大体是: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1×× 保留 2×× 表示请求成功地接收 3×× 为完成请求客户需进一步细化请求 ...
- uchome 积分体系
一.总体流程 1):管理员在后台修改积分规则2):数据被写入数据表creditrule 中,并将数据写入缓存文件data/data_creditrule.php 中3):用户发表文章或者进行其他操作的 ...
- 创建新进程,就三个函数CreateProcessAsUser CreateProcessWithLogonW CreateProcessWithTokenW(附网友的流程)
CreateProcessAsUser 怎么会还需要密码呢~~~ 先WTSGetActiveConsoleSessionId 得到当前的处理激活状态的SessionId OpenProcessToke ...
- 317. Shortest Distance from All Buildings
题目: Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where th ...
- CodeForces485B——Valuable Resources(水题)
Valuable Resources Many computer strategy games require building cities, recruiting army, conquering ...