图像的几何矩特征
来源:互联网 发布:淘宝客服准则 编辑:程序博客网 时间:2024/04/30 00:39
1. 矩的概念
图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(图像描述量)来描述整个图像,这组数据越简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰。图像识别发展几十年,不断有新的特征提出,而图像不变矩就是其中一个。
矩是概率与统计中的一个概念,是随机变量的一种数字特征。设
比较重要的有两种情况:
1.
2.
一阶原点矩就是期望。一阶中心矩
针对于一幅图像,我们把像素的坐标看成是一个二维随机变量
不变矩(Invariant Moments)是一处高度浓缩的图像特征,具有平移、灰度、尺度、旋转不变性。M.K.Hu在1961年首先提出了不变矩的概念。1979年M.R.Teague根据正交多项式理论提出了Zernike矩。下面主要介绍这两种矩特征的算法原理与实现。
2. Hu矩(几何矩)
一幅
其中
若将
为了消除图像比例变化带来的影响,定义规格化中心矩如下:
利用二阶和三阶规格中心矩可以导出下面7个不变矩组
3. 利用OpenCV计算Hu矩
opencv里对Hu矩的计算有直接的API,它分为了两个函数:moments()函数用于计算中心矩,HuMoments函数用于由中心矩计算Hu矩。
Moments moments(InputArray array, bool binaryImage=false )
参数说明
- 输入参数:array是一幅单通道,8-bits的图像,或一个二维浮点数组(Point of Point2f)。binaryImage用来指示输出图像是否为一幅二值图像,如果是二值图像,则图像中所有非0像素看作为1进行计算。
- 输出参数:moments是一个类:
class Moments{public: Moments(); Moments(double m00, double m10, double m01, double m20, double m11, double m02, double m30, double m21, double m12, double m03 ); Moments( const CvMoments& moments ); operator CvMoments() const;}
里面保存了图像的2阶与3阶中心矩的值。
void HuMoments(const Moments& moments, double* hu)
参数说明:
- 输入参数:moments即为上面一个函数计算得到的moments类型。
- 输出参数:hu是一个含有7个数的数组。
int main(int argc, char** argv) { Mat image = imread(argv[1]); cvtColor(image, image, CV_BGR2GRAY); Moments mts = moments(image); double hu[7]; HuMoments(mts, hu); for (int i=0; i<7; i++) { cout << log(abs(hu[i])) <<endl; } return 0; }
- 图像的几何矩特征
- 图像特征:几何不变矩--Hu矩
- 【图像算法】图像特征:几何不变矩--Hu矩
- 图像处理之图像特征:几何不变矩--Hu矩
- 图像的几何矩
- 图像特征提取:图像的矩特征
- 图像的矩特征
- 图像的矩特征
- 图像的矩特征
- 【图像处理】图像特征提取:图像的矩特征
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- 图像的几何不变矩
- HDU
- WEBGL学习【三】颜色选择
- Ubuntu16.04安装中文输入法
- 第二次实验
- 洛谷 P2029 跳舞
- 图像的几何矩特征
- WEBGL学习【四】模型视图矩阵
- mysql查询分页时有重复的
- 分页
- Ubuntu16.04安装后常用配置
- HTML、CSS字体
- 机器人怎么更懂人类?谷歌:看这五万多个视频! | 研究
- 专访Misa:Rokid选择了最难的路也是唯一的路 | AI英雄
- 特斯拉想上海建厂 外媒:欲在华成功 它必须降价 | 行业