美文网首页OpenGLOpenGL程序员
OpenGL ES入门07-像素的代数运算

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

作者: 秦明Qinmin | 来源:发表于2017-02-16 22:22 被阅读657次

    前言

    本文是关于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)
    
    主要应用
    • 去除叠加性噪声

      去除叠加性噪声 对于原图像f(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)
    
    主要应用
    • 显示两幅图像的差异,检测同一场景两
      幅图像之间的变化
      如:视频中镜头边界的检测
      去除不需要的叠加性图案
      图像分割:如分割运动的车辆,减法去 掉静止部分,剩余的是运动元素和噪声

    • 检测同一场景两幅图像之间的变化
      设:时间1的图像为T1(x,y), 时间2的图像为T2(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)   
    
    主要应用举例
    • 获得相交子图像
    相交子图像

    相关文章

      网友评论

      • 幻想无极:楼主是看的什么书总结的呢
      • 奔跑的时间:你好 怎么能将两张图片合成一张图片,并且把去除这两张图片的相同部分?

      本文标题:OpenGL ES入门07-像素的代数运算

      本文链接:https://www.haomeiwen.com/subject/voxhwttx.html