Zernike不变矩
1、Zernike矩介绍
Zernike矩是基于 Zernike多项式的正交化函数,所利用的正交多项式集是 1个在单位圆内的完备正交集。Zernike矩是复数矩 ,一般把 Zernike矩的模作为特征来描述物体形状。1个目标对象的形状特征可以用 1组很小的 Zernike矩特征向量很好的表示,低阶矩特征向量描述的是 1幅图像目标的整体形状,高阶矩特征向量描述的是图像目标的细节。

2、Zernike多项式数学描述
Zernike有奇数和偶数之分
若为奇数,则 
若为偶数,则 
其中,
m、n为非负整数,且n>m;
φ 为方位角;
ρ 为半径 ,
;
Zernike收敛于[-1,1]之间:
;
Rmn 为径向多项式:
当n-m的值为奇数时,
;
当n-m的值为偶数时, Rmn =0 。
3、Zernike的特点
1)当计算 1幅图像的 Zernike矩时 ,以该图像的形心 (也称作重心 )为原点 ,把像素坐标映射到单位圆内。
2)Zernike 矩是一组正交矩,具有旋转不变性的特性,即旋转目标并不改变其模值。
3)低阶矩特征向量描述的是 1幅图像目标的整体形状,高阶矩特征向量描述的是图像目标的细节。
4)通过标准矩来归一化的图像,可以做到平移和尺度不变性。
4、Zernike矩的应用
由于Zernike矩是用来描述图像目标的几何形状信息,所以Zernike图像矩可应用于手势识别、形状识别、图像分类等几何形状明显的特征物。但是不能用来识别丰富的纹理信息的物体。
参考:
维基百科:https://en.wikipedia.org/wiki/Zernike_polynomials
matlab代码:http://www.mathworks.com/matlabcentral/fileexchange/38900-zernike-moments
C代码:http://blog.csdn.net/wrj19860202/article/details/6334275
C++与opencv写的demo:http://download.csdn.net/detail/lengyun_5850/9365199
Zernike不变矩的更多相关文章
- 形状特征提取-Hu不变矩(转载)
[原文部分转载]:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx 在连续情况下,图像函数为 ,那么图像的p+q阶几何矩 ...
- 【图像基础】图像不变性特征HU矩和Zernike矩
参考 1. 图像不变性特征: 2. matlab实现: 3. HU矩和Zernike矩: 完
- Zernike矩之边缘检测(附源码)
这一篇博文将讨论Zernike矩在边缘检测中的应用,关于Zernike矩的基本概念,可以参看<Zernike矩之图像重建(附源码> 源码下载 参考: [4] Ghosal S, Mehro ...
- Zernike矩之图像重建(附源码)
源码下载 参考: [1] Teague M R. Image analysis via the general theory of moments[J]. JOSA, 1980, 70(8): 920 ...
- 几何不变矩--Hu矩
[图像算法]图像特征: ---------------------------------------------------------------------------------------- ...
- 【图像算法OpenCV】几何不变矩--Hu矩
原文地址 http://blog.csdn.NET/daijucug/article/details/7535370 [图像算法OpenCV]几何不变矩--Hu矩 一 原理 几何矩是由Hu(Visu ...
- 模式识别之不变矩---SIFT和SURF的比较
- 转载:使用 OpenCV 识别 QRCode
原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很. 这次想用 OpenCV 从零识别 ...
- A Survey of Shape Feature Extraction Techniques中文翻译
Yang, Mingqiang, Kidiyo Kpalma, and Joseph Ronsin. "A survey of shape feature extraction techni ...
随机推荐
- u盘分区装机版
第一步:制作启动U盘前的软硬件准备 .准备一个最好大于2G的U盘,并先备份好里面的数据,防止接下来需要清空U盘的数据而出现丢失重要文件: 2.下载U盘启动盘制作工具6.1软件,直接放在桌面,方便接下来 ...
- JavaScript中的alert、confirm、prompt
alert: var a=alert('Alert');//界面只有一個確定alert(a); //返回值為undefined confirm: var c= confirm('Confirm') ...
- python和C语言混编的几种方式
Python这些年风头一直很盛,占据了很多领域的位置,Web.大数据.人工智能.运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它. Pytho ...
- 常用git指令
git checkout -b newBranchName //与当前分支内容相同! git checkout -b 本地分支 origin xxx//远程分支 在本地新建一个分支,并把远程分支的代码 ...
- Android性能优化xml之<include>、<merge>、<ViewStub>标签的使用
一.使用<include>标签对"重复代码"进行复用 <include>标签是我们进行Android开发中经常用到的标签,比如多个界面都同样用到了一个左侧筛 ...
- nodejs中http-proxy使用小结
最近在写xmocker的工具,用于开发前期的mock数据,不可避免的用到了代理的中间件.当然,github上有关于http-proxy封装的中间件.毕竟是自己练手的项目,就自己写了个中间件,方便定制功 ...
- C++ sizeof 误区 大公司面试题
1.C++ 无成员变量和函数的类型的实例,求该实例的sizeof? 答:是1.(不是0) 2.如果在题1的基础上有1个成员变量,sizeof是(1+成员变量的大小)吗? 答:不是,是成员变量的大小. ...
- 《深入理解Java虚拟机》读书笔记-垃圾收集器与内存分配策略
在堆里存放着java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前需要知道哪些对象还存活,哪些对象已经死去.那怎么样去判断对象是否存活呢? 一.判断对象是否存活算法 1.引用计数法 实现思路:给 ...
- Echarts图表统计学习
史上最全的Echarts图表学习文档 http://echarts.baidu.com/doc/doc.html 勤加练习,多做总结! http://www.stepday.com/topic/?79 ...
- Android 常见知识整理(1)
Android Support V4, V7, V13的作用与用法 http://blog.csdn.net/hh2000/article/details/39718623 2. 开源项目 注解 ...