首先,用通俗的语言说明两个基本概念,非线性和各向异性

非线性,可以从线性说起,不严谨的说,如果两个变量之间的关系是一次函数,那么就说他们是线性关系,比如一维的一条直线:

y=kx+b,k和b都是实数,表示为:

两者关系不是线性的,那就是非线性的,典型的,多次函数,幂指数,逻辑函数等。

各向异性,先从各项同性说起。这个可以举一个简单的例子,二维高斯函数,只要该点离高斯中心点的距离相同,那么得到的函数值就相同:

例如,上图中颜色相同的等高线,不管该点处于哪个方向,只要离中心点的距离相同,那么值就是相同的。这个简单的例子可以帮助我们理解各项同性,那么很自然的想到,如果将上述高斯函数做一点小变化,把x变为x/2,那么等高线就不再是圆了,各当方向不同的时候,尽管距离相同,那值也是不同的,因此是各向异性的。

这两个概念有助于我们理解各向异性扩散的核心思想。

各向异性扩散滤波,是一种针对噪声的保边滤波器,保边意思就是在磨平噪声的同时,保留边沿。因为大多数的噪声是孤立的点,就像是二维高斯函数的图像一样,是各向同性的,影响图像质量。而有意义的目标边沿,其边沿点一般不是孤立的,表现为线、拐角等,这些是有意义的信息,在滤波的过程中应该保留。那很自然的一种想法就是使用各向异性类型的滤波器。

拉普拉斯滤波器是提取图像边沿信息的有效工具之一,经过拉氏算子卷积后的特征图,体现了原图像中的极值点信息,其实也是一种高频信息,具体表现为,如果这个像素是极大值,则特征图像素值为负,如果是极小值点,特征图像素值为正。仅有x和y方向的5像素拉氏滤波器模板表示为:

使用迭代法,计算每一步滤掉的那一部分图像:

那么,等式右侧就是图像对x,y方向的二阶偏导:

是离散二维图像的二阶偏导表达式,因此就能得到,记做

在图像中也就是迭代一次得到的图像与迭代前图像的差,它和原图像是同型的。

这个标准的热传导方程是线性扩散方程,也就是说,这里的D是与1同阶的固定常数,简单理解为一个固定实数。

这个迭代过程和热扩散过程就是等价的。此时,还不是各项异性,因为对x和y的偏导部分系数都是一样的,都是D,如果将D改写为一个关于位置(x,y)的对角阵,或者更一般的正定矩阵:

那么扩散过程就变为了:

注意这里的D是作用在了u的梯度图上后,再求散度的,证明它是和x,y相关的,同时,这里引入了,也就是二阶偏导,就是对y求偏导后再对x求偏导。当a、b、c不完全相等时,该扩散就是各项异性的了,同时D是一阶函数,这就是线性各项异性扩散。这个扩散的驱动力就是像素强度分布的不均匀性

而通量公式:

只要保证D是正定的,那么通量肯定是梯度衰减的:

因此,扩散过程会磨平大的梯度,尤其是各个方向的梯度值是一致的随机噪声引起的局部振荡。

而振荡的剧烈程度和扩散程度之间的关系可以由一个简单的例子说明:

因为D是正定的,>0,那么>0,这说明线性空间的这个扩散算子L作用在这个单色振荡上,就相当于是乘了一个系数(这里可以看做是矩阵L的特征值和特征向量。因此仅仅是对的缩放),而缩放程度==O(k^2),也就是与k平方线性相关的值,所以k越大,扩散的越厉害,是呈平方关系增长的。

非线性各项异性扩散,就是将线性的D变为了非线性的P:

这个形如高斯函数的非线性扩散系数,是为了在宏观上保持图像的边。它可以平衡由梯度大小而导致的扩散不均匀,因为如果是线性的,梯度大,那么它对整个扩散的贡献就会大,导致扩散速度加快,而梯度小,其作用就会微不足道。其实这是符合热扩散原理的,但是为了在宏观上保持图像的边,需要将制衡不同梯度的贡献率,因此这个自适应的函数达到的目的是,降低大梯度的贡献率,保持小梯度的贡献率。扩散方程就变为了:

假设 

则有:

这里将,是契合了数字图像求偏导的想法,求得的偏导不是该像素点的,而近似是这个像素点的偏导,更像是拉格朗日中值定理描述的那样,将像素间跃变认为是线性的,因此这么记会更确切。

这时做如下变换,将:

,对取极限,便得到了非线性扩散方程:

这里的变化可以通过下面的图加以辅助理解:

那么扩散后也即是滤波后的图像可以表达为:

这也是基于各项异性扩散的图像融合方法里所用到的理论基础:

D.P. Bavirisetti, R. Dhuli, Fusion of infrared and visible sensor images based on anisotropic diffusion and karhunen-loeve transform, IEEE Sensors J. 16 (1) (2016) 203–209.

热传导与图像处理:非线性各项异性扩散相关推荐

  1. 各项异性扩散滤波 -- OpenCV实现

    /*********************************** *功能 -- 各项异性扩散滤波 *by 垚 *visual studio 2010 & windows 7 ultim ...

  2. 各项异性扩散(Anisotropic diffusion)--算法简介(python)代码实现

    各项异性扩散(Anisotropic diffusion)–算法简介(python)代码实现 学习博文 https://blog.csdn.net/qq_38784098/article/detail ...

  3. sdl2 opengl d3d9的mipmap和各项异性过滤渲染

    sdl支持的驱动 列出后可以根据自己的需求去做,如果没有驱动就使用software去做就好了,以下列出对比,视频源为1280 720 的摄像头,使用RGB24来测试 opengl CPU占用率在1.3 ...

  4. 图形学基础|各项异性与头发渲染

    图形学基础|各项异性与头发渲染 文章目录 图形学基础|各项异性与头发渲染 一.前言 二.各向异性光照 2.1 各向异性光照现象 2.2 ShadingModel扩展 三.头发光照模型 3.1 Kaji ...

  5. 次时代游戏头发各项异性流光flowtexture绘制探析

    一直以来忙于次时代项目研发工作,少有时间去好好总结沉淀一下,半年前就打算想写点东西分享交流一下,直到今天才有时间真正去执笔. 参与过次时代项目的同学,大多都接触过一个各项异性的概念,今天我想分享的内容 ...

  6. 各项异性滤波简介Anisotropic Filtering(AF)

    本文主要整理简绍来自互联网的各项异性滤波的知识. 原文链接:http://www.linuxgraphics.cn/graphics/using_anisotropic_texture_filteri ...

  7. 各项异性高光 Kajiya-Kay TDir or BDir

    在做Kajiya-Kay各项异性高光的时候,我们会使用半角向量(hDir)和模型的切线方向进行点积.但有时候用切线方向的效果不正确,用副切线方向确有正确的效果. 那么什么时候改用切线,什么时候用副切线 ...

  8. opengl 三线性和各项异性过滤

    概念 在纹理倾斜的时候如何设置边缘模糊,否则图像看起来会很怪异,对眼睛不适合,这个技术其实ffmpeg做得非常好,在合适的参属下,ffmpeg缩小会把这些做好. 各项异性过滤 Anisotropic ...

  9. VTK:图像平滑——各项异性滤波

    1.各向异性扩散滤波 高斯平滑方法在平滑噪声的同时,模糊了图像重要的边缘图像.各向异性滤波是一种基于偏微分方程的滤波技术,建立于热量的各向异性扩散理论.各向异性滤波在图像的平坦区域选择大尺度平滑,而边 ...

最新文章

  1. UITabBarController跳转任意界面的方法
  2. 第一篇 献给一次线上100%CPU
  3. python matplotlib.pyplot如何绘制实时图表?(实时绘制、更新图表、实时更新、动态窗口)plt.ion() plt.clf() plt.pause() plt.ioff()
  4. Xcode 6 allows VECTOR image assets… any idea how to use them?
  5. mysql利用外连接删除数据_MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新...
  6. 支付宝通知侦听器是什么_使用SWTEventHelper清除SWT侦听器通知
  7. Android listview addHeaderView 和 addFooterView 详解
  8. 学点数学(1)-随机变量函数变换
  9. 春招已近,这份GitHub万星的ML算法面试大全请收下
  10. linux 物理内存用完了_12张图解Linux内存管理,程序员内功修炼,看过都说懂了!...
  11. 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm...
  12. P1828 香甜的黄油 (spfa)
  13. 利用Python收发邮件
  14. suse 12 sp5安装bug
  15. HDU 4269 Defend Jian Ge 解题报告
  16. C语言指针的正确打开方式!
  17. 杂谈|数据分析虽火但并不适合每一个人!浅谈如何利用自身优势转行数据分析
  18. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决
  19. SSM考试题库管理系统毕业设计源码069043
  20. classpath、path、JAVA_HOME的作用及JAVA环境变量配置 (转)

热门文章

  1. java计算机毕业设计高校就业宣讲会系统MyBatis+系统+LW文档+源码+调试部署
  2. 算力五力模型:一种衡量算力的综合方法
  3. python 处理 Excel 模块使用三方库的对比分析(xlrd/xlwt/xlutils/openpyxl)
  4. 分库分表数据库中间件对比
  5. 腾讯云建站 CloudPages 新品上线,做网站从未如此简单
  6. MySQL数据库配置data文件_MySQL数据库之MySQL数据库迁移data文件夹位置详细步骤
  7. 世界上最著名的操作系统是用什么语言编写的?
  8. JAVA Class4
  9. Qt注册热键打开窗口
  10. php removechild,PHP DOMNode removeChild()用法及代码示例