一点一滴完全突破KAZE特征检测算法,从各向异性扩散滤波开始(1)
ECCV2012中出现了一种比SIFT更稳定的特征检测算法KAZE。尽管,这个算法是几个法国人提出的,但是算法却有一个日文的名字。KAZE是日语‘风’的谐音,最近宣布退休的宫崎骏所拍摄的影片“起风了”,那个主题曲里就不停的反复出现KAZE这个发音。传统的SIFT和SURF核心算法都被申请了专利,在实际应用中存在一定障碍。KAZE现在还不知道有否被申请专利保护,不过就算法而言,这个算法的表现也更加稳定,效果良好,笔者准备发一系列连载的文章把相关的知识一点一滴的详细的说来,争取让各位读者能够做到“彻底理解”。
本文是该系列文章的第一节。我们要从一个物理模型开始说起。因为KAZE特征检测是在图像域中进行非线性扩散处理的过程。所以要想理解KAZE,必须得先理解,什么是非线性扩散处理。要说到什么是非线性扩散处理,也称为各向异性扩散,也就需要搞懂各向异性扩散中最基础的算法,也就是Perona-Malik方程。Perona-Malik方程在KAZE中也有用到,所以,理解Perona-Malik方程是必须的(如果读者已经对此比较理解,可以跳过此部分内容)。要想完全理解Perona-Malik方程,就必须从物理上的扩散方程(也叫热传导方程)开始。本节就先向各位介绍热传导方程的推导。对于学物理的人来说,这部分内容非常基础,对于学计算机的人来说,可能了解不多。如果有学过“应用偏微分方程”方面的课程,这部分内容也是非常EASY的。
(抱歉,因为公式太多,我只能贴图了)
一维热传导方程
如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。偏微分方程(PDE)是用来描述同一因变量对于不同自变量的偏导数之间制约关系的等式,这种制约关系常常是指未知变量关于时间和空间变量的导数之间的关系,因此偏微分方程在物理学中十分常见。目前,在数字图像处理领域,偏微分方程方法也得到了广泛的应用。为了引人后续我们将要介绍各向异性扩散方程,我们这里先从物理学的角度去理解一下一维热传导方程,也称一维扩散方程。
热能是由分子的不规则运动产生的。在热能流动中有两种基本过程:传导和对流。传导由相邻分子的碰撞产生,一个分子的振动动能被传送到其最近的分子。这种传导导致了热能的传播,即便分子本身的位置没有什么移动,热能也传播了。此外,如果振动的分子从一个区域运动到另一个区域,它会带走其热能。这种类型的热能运动称为对流。为了从相对简单的问题开始讨论,这里仅研究热传导现象。
为了避免文章太长,今天先贴这么多。
未完,待续 ...
一点一滴完全突破KAZE特征检测算法,从各向异性扩散滤波开始(1)的更多相关文章
- KAZE特征和各向异性扩散滤波
kaze feature: http://www.doc88.com/p-6911376909693.html 各向异性扩散滤波 Scale-space and edge detection usi ...
- matlab各向异性扩散滤波
主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留图像边缘的(和双边滤波很像). 通常我们有将图像看作矩阵的,看作图的,看作随机过程的,记得过去还有看作力场的. 这次新鲜,将图 ...
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 201 ...
- 【转】Matlab练习程序(各向异性扩散)
http://www.cnblogs.com/tiandsp/archive/2013/04/18/3029468.html 主要是用来平滑图像的,克服了高斯模糊的缺陷,各向异性扩散在平滑图像时是保留 ...
- 四旋翼基础算法学习2-IMU输入滤波算法
前言: 处理器读取陀螺仪加速度计数据后首先需要对数据进行滤波处理,此文分析比较几种常用的滤波算法. 参考学习:四轴加速度计滤波 IMU: IMU使用MPU9250(即MPU6500),设置加速度量程± ...
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part6
本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part6,辑录该书第281至第374页之代码,供有须要读者下载研究使用.代码运行结果请參见原书配图,建议下载代码前阅读下 ...
- MR 图像分割 相关论文摘要整理
<多分辨率水平集算法的乳腺MR图像分割> 针对乳腺 MR 图像信息量大.灰度不均匀.边界模糊.难分割的特点, 提出一种多分辨率水平集乳腺 MR图像分割算法. 算法的核心是首先利用小波多尺度 ...
- Halcon斑点分析涉及算子及其高阶运用
涉及算子 获取图像 使用ROI 对齐ROI或图像 校正图像 基础内容这里不再重述 预处理图像(过滤) 基础: mean_image(平均平滑过滤),gauss_filter(高斯滤波),binomia ...
- OPENCV图像特征点检测与FAST检测算法
前面描述角点检测的时候说到,角点其实也是一种图像特征点,对于一张图像来说,特征点分为三种形式包括边缘,焦点和斑点,在OPENCV中,加上角点检测,总共提供了以下的图像特征点检测方法 FAST SURF ...
随机推荐
- Erich Gamma
Erich Gamma是IBM的杰出工程师.他是Jazz项目的领头人之一,曾担任Eclipse的Java开发环境JDT项目的领导,目前是Eclipse的项目管理委员会成员.Erich也是经典书籍< ...
- c# datagridviewcomboboxcell值无效的解决办法
一直认为是数据库存储的数据和datagridviewcomboboxcell对不上导致,今天碰到两者对应上了,预览的时候还是提示错误, 查看了下网上其他大神的解决方法,是数据库字段类型有误,查看了下, ...
- 【Eclipse】Failed to load JavaHL Library
1.选择window--->preferences->Team->SVN->SVN接口 2.选择SVNKit (Pure Java) xxxxxx 如下图所示 : 选择之后, ...
- Android使用HttpClient向服务器传输文件
HttpClient是Apache Jakarta Common下的子项目,可以用来提供功能丰富的支持HTTP协议的客户端编程工具包,这几天写客户端的时候遇到个问题,“客户端需要向服务器发送Post请 ...
- MVC是一种用于表示层设计的复合设计模式
它们之间的交互有以下几种: 1.当用户在视图上做任何需要调用模型的操作时,它的请求将被控制器截获. 2.控制器按照自身指定的策略,将用户行为翻译成模型操作,调用模型相应逻辑实现 ...
- CodeIgniter 应用开发笔记 - 3
使用migration建数据表 一.新建migrations文件夹 在application新建一个文件夹migrations,存放建表类. 建表类使用用户手册中的代码作为模板(user_guide/ ...
- lua序列化table表到文件中
先上代码 function luautil.serialize(t, sort_parent, sort_child) local mark={} local assign={} local func ...
- c: c代码书写规范
排版: 较长的语句或函数过程参数(>80字符)要分成多行书写, 长表达式要在低优先级操作符处划分新行,操作符放在新行之首, 划分出的新行要进行适当的缩进,使排版整齐,语句可读 参考: 1. 运算 ...
- STL之iterator(迭代器)
3.迭代器简单介绍 除了使用下标来訪问vector对象的元素外,标准库还提供了訪问元素的方法:使用迭代器.迭代器是一种检查容器内元素而且遍历元素的数据类型. 百科释义: 迭代器(iterator)是一 ...
- FMXUI - UI.Dialog 示例
在 FMXUI 开源库,增加了 UI.Dialog 单元.此单元实现了跨平台的基础对话框组件.使用时引用 UI.Dialog 即可.如果需要自定义对话框的样式, 可以添加一个 TDialogStyle ...