美文网首页OpenCv数学与算法推导
图像拉普拉斯算子原理--Apple的学习笔记

图像拉普拉斯算子原理--Apple的学习笔记

作者: applecai | 来源:发表于2019-12-12 21:00 被阅读0次

    最近开始复习图像算法。1年前关于拉普拉斯算子一定是学过的。但是记不得了,当时应该是很快看完,死记硬背的,那么久没用,所以忘记了。那么作为第二轮学习,我需要做的是自己推导公式,并且能将数学转换到图像处理的原因弄清楚,这样才能深刻的记住原理,今后才能灵活应用。

    一,图像拉普拉斯算子的来源

    1. 所谓算子就是卷积核

    图像中的卷积的应用可以理解为图像区域中的权重和。这个是基础就不说了。

    2. 拉普拉斯3x3算子

    0 1 0
    1 -4 1
    0 1 0

    对应的3x3图像处理区域如下

    x-1,y+1 x,y+1 x+1,y+1
    x-1,y x,y x+1,y
    x-1,y-1 x,y-1 x+1,y-1

    3. 算子来源

    它是x和y方向的向量和,是通过二元参数的二阶偏微分和和得来的。
    \Delta^2f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2}=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

    拉普拉斯算子和图像区域的卷积正是上述公式。

    4. 公式推导

    导数公式知道,二阶偏导数公式也知道,为什么是这样的形式呢?原因它不是连续函数求导,而是离散点求导。
    F'(x)=\lim_{\Delta x \to 0}\frac{f(x+\Delta x)-f(x)}{\Delta x}
    由于图像中每一点的最小单位\Delta x为1个像素。所以对一元函数的导数可以写为
    F'(x)=f(x+1)-f(x)也可以写为F'(x)=f(x)-f(x-1),图像处理一般用后者展开。

    那么一阶导数会求了,一元函数的二阶导数呢?就是一阶导数的导数
    F''(x)=f'(x+1)-f'(x),展开如下
    F''(x)=f(x+1+1)-f(x+1)-(f(x+1)-f(x)),整理得
    F''(x)=f(x+2)-2f(x+1)+f(x)

    也可以这样展开
    F''(x)=f'(x)-f'(x-1)展开如下
    F''(x)=f(x+1)-f(x)-(f(x)-f(x-1)),整理得
    F''(x)=f(x+1)-2f(x)+f(x-1)

    最后,针对二元函数进行扩展就是
    F''(x,y)_x=f(x+1,y)-2f(x,y)+f(x-1,y),对x求二阶偏导,全部添加非变量y即可。
    同理F''(x,y)_y=f(x,y+1)-2f(x,y)+f(x,y-1)

    那么F''(x,y)_x+F''(x,y)_y =f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)

    至此数学公式推导完成。

    二,图像拉普拉斯算子的应用

    1. 应用公式

    g(x, y) =f(x,y) +c[\Delta^2f(x, y)]

    2. 图像中对应公式的含义理解

    首先处理的是像素x和y的灰度,从公式可以看出是一种变换,变换的内容为原来的灰度值加上c倍的二阶偏导数的和。
    接着把重点放到二阶偏导数的和代表x和y方向的偏导数的和。而导数是研究一种变化率,而偏导数是研究导数的变换率。若是边缘的话,变化率的值一定是很高的,代表相邻像素的差值。而二阶偏导数是一阶偏导数的导数。而拉普拉斯算子其实应用于图像锐化(就是突出边缘的意思)看下图,二阶函数处理后变成了边缘左边为1,边缘右边为-1,这样的情况下与原像素叠加后,边缘值左右两边变换差值更加明显,这样就可以突出边缘效果了。至少我目前是这么理解的


    图像中的一阶和二阶导数.png

    相关文章

      网友评论

        本文标题:图像拉普拉斯算子原理--Apple的学习笔记

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