OpenGLOpenGL程序员

OpenGL ES入门07-像素的代数运算

2017-02-16  本文已影响657人  秦明Qinmin

前言

本文是关于OpenGL ES的系统性学习过程,记录了自己在学习OpenGL ES时的收获。
这篇文章的目标是学习OpenGL ES 2.0中的像素点的代数运算。
环境是Xcode8.1+OpenGL ES 2.0
目前代码已经放到github上面,OpenGL ES入门07-像素的代数运算

欢迎关注我的 OpenGL ES入门专题

概述

代数运算主要有:算术运算(加、 减、乘、除),逻辑运算(非、或、异或)。在图像处理中代数运算同样适用,但代数运算在图像处理中不仅仅是简单的数学运算,还有它的实际意义。

加法运算

加法运算的定义
C(x,y) = A(x,y) + B(x,y)
主要应用
{ gi(x,y) }; i =1,2,...N 其中: g(x,y) = f(x,y) + h(x,y)

假设噪声h(x,y)均值为0,且互不相关 N个图像的均值定义为:

g(x,y) = 1/N(g0(x,y)+g1(x,y)+...+ gN(x,y))

期望值E(g(x,y)) = f(x,y) 上述图像均值将降低噪声的影响

生成图像叠加效果 对于两个图像f(x,y)和h(x,y)的均值有:

g(x,y) = 1/2f(x,y) + 1/2h(x,y)

推广这个公式为:

g(x,y) = α*f(x,y) + β*h(x,y); 其中 α + β = 1

可以得到各种图像合成的效果,也可以用于 两张图片的衔接

加法运算

减法运算

减法的定义
C(x,y) = A(x,y) - B(x,y)
主要应用
g(x,y) = T2 (x,y) - T1(x,y)

去除不需要的叠加性图案
设:背景图像b(x,y),前景背景混合图像 f(x,y)

g(x,y) = f(x,y) – b(x,y) g(x,y) 为去除了背景的图像。
减法运算

乘法运算

乘法的定义
C(x,y) = A(x,y) * B(x,y)
主要应用
图像乘法 图像乘法

非运算

非运算的定义
g(x,y) = 255 - f(x,y)
主要应用
阴图像 补图像

与运算

与运算的定义
g(x,y) = f(x,y) ∧ h(x,y)   
主要应用
图像的相交 提取子图像

或运算

或运算的定义
g(x,y) = f(x,y) v h(x,y)
主要应用
合并子图像 提取子图像

异或运算

异或运算的定义
g(x,y) = f(x,y) ⊕ h(x,y)   
主要应用举例
相交子图像
上一篇 下一篇

猜你喜欢

热点阅读