目录

1 矩的概念

2 Hu不变矩

3 利用opencv-python计算Hu矩

1 矩的概念

图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(图像描述量)来描述整个图像,这组数据越简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰。图像识别发展几十年,不断有新的特征提出,而图像不变矩就是其中一个。

矩是概率与统计中的一个概念,是随机变量的一种数字特征。设X为随机变量,c为常数,k为正整数。则量E[(x−c)k]称为X关于c点的k阶矩。

比较重要的有两种情况:

1. c=0。这时ak=E(Xk)称为X的k阶原点矩

2. c=E(X)。这时μk=E[(X−EX)k]称为X的k阶中心矩。

一阶原点矩就是期望。一阶中心矩μ1=0,二阶中心矩μ2就是X的方差Var(X)。在统计学上,高于4阶的矩极少使用。μ3可以去衡量分布是否有偏。μ4可以去衡量分布(密度)在均值附近的陡峭程度如何。

针对于一幅图像,我们把像素的坐标看成是一个二维随机变量(X,Y),那么一幅灰度图像可以用二维灰度密度函数来表示,因此可以用矩来描述灰度图像的特征。

不变矩(Invariant Moments)是一处高度浓缩的图像特征,具有平移、灰度、尺度、旋转不变性。M.K.Hu在1961年首先提出了不变矩的概念。1979年M.R.Teague根据正交多项式理论提出了Zernike矩。

2 Hu不变矩

Hu 距值具有旋转、缩放、镜像和平移不变性,也就是说相同或相似的形状经过旋转、缩放、平移变换后,其 Hu 矩值不变。对于彩色帐篷形状固定的障碍物,在无人机飞行过程中会产生缩放、平移等变化,但其 Hu 矩值变化不大;而对于火焰由于其面积和轮廓的无规律变化,其 Hu 矩值也会呈相应的无规律变化。Hu 矩是通过二阶和三阶中心矩可求得 7 个不变矩组,如下式所示。

由Hu矩组成的特征量对图片进行识别,优点就是速度快,缺点是识别率比较低,对于纹理比较丰富的图片,识别率低。

Hu不变矩一般用于识别图像中大的物体,对于物体的形状描述得比较好,图像的纹理特征不能太复杂,像识别水果形状,或者对于车牌中的简单字符的识别效果会相对好一些。

3 利用opencv-python计算Hu矩

#============hu不变矩==============
# Hu不变矩的性质:(1)图像形状平移不变性;(2)图像形状尺度不变性;(3)图像形状旋转不变性。
# Hu不变矩的应用与意义:(1)图像形状匹配;(2)图像形状区分;(3)图像形状相似度计算。
import cv2
from datetime import datetime
import numpy as npdef test(img):moments = cv2.moments(img)humoments = cv2.HuMoments(moments)# 因为直接计算出来的矩可能很小或者很大,因此取对数好比较,这里的对数底数为e,通过对数除法的性质将其转换为以10为底的对数,一般是负值,因此加一个负号将其变为正的humoments = -(np.log(np.abs(humoments)))/np.log(10) # 同样建议取对数print(humoments)if __name__ == '__main__':#t1 = datetime.now()fp = './photo/7-5-1250.bmp'img = cv2.imread(fp)img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)test(img_gray)#print (datetime.now() - t1)

参考来源:图像的矩特征 - ☆Ronny丶 - 博客园

Hu 矩计算 - 知乎

图像矩(Hu矩)简介_呜呜我是小侠客的博客-CSDN博客_hu矩

机器学习图像特征提取—Hu矩(Hu不变矩)原理及代码相关推荐

  1. GAN综述及其在图像生成领域的应用(含原理、代码详解)

    本文将持续更新. 目录 1. 基本GAN 1.1 GAN(2014) 1.2 CGAN(2015) 1.3 DCGAN(2015) 1.4 VAE-GAN(2016) 1.5 ACGAN(2017) ...

  2. 机器学习图像特征提取—颜色(RGB、HSV、Lab)特征提取并绘制直方图

    目录 1 颜色特征 1.1 RGB色彩空间 1.2 HSV色彩空间 1.3 Lab色彩空间 2 使用opencv-python对图像颜色特征提取并绘制直方图 2.1 RGB颜色特征和直方图 2.2 H ...

  3. win10+Python3.7.3+OpenCV3.4.1入门学习(十二 图像轮廓)————12.4 Hu矩

    文章目录 12.4 Hu矩 12.4.1 Hu矩函数 12.4.2 形状匹配 Python版本是Python3.7.3,OpenCV版本OpenCV3.4.1,开发环境为PyCharm 12.4 Hu ...

  4. Hu矩---OpenCV-Python开发指南(26)

    目录 什么是Hu矩 获取Hu矩值 形状匹配 什么是Hu矩 Hu矩是归一化中心矩的线性组合.Hu矩在图像的旋转,缩放,平移等操作后,仍然保持矩的特征不变,所以经常会用到Hu矩来识别图像的特征. 在Ope ...

  5. opencv入门:矩特征,Hu矩

    矩特征 比较两个轮廓最简单的方法是比较二者的轮廓矩,轮廓矩代表了一个轮廓,一副图像,一组点集的全局特征,矩信息包含了对应对象不同类型的集合特征,例如大小,位置,角度,形状等,矩特征广泛应用在模式识别, ...

  6. 图像特征提取(VGG和Resnet特征提取卷积过程详解)

    图像特征提取(VGG和Resnet算法卷积过程详解) 第一章 图像特征提取认知 1.1常见算法原理和性能 众所周知,计算机不认识图像,只认识数字.为了使计算机能够"理解"图像,从而 ...

  7. 图像特征中的几何不变矩:Hu矩

    对了,我最近开通了微信公众号,计划是两边会同步更新,并逐步的会将博客上的文章同步至公众号中. 感兴趣的朋友可以扫描下方的二维码或者搜索"里先森sements"来关注,欢迎来玩~! ...

  8. Hu矩的形状特征提取---matlab实现

    Hu矩的形状特征提取–matlab实现 参考博客:https://blog.csdn.net/kcsdnprac/article/details/54954543 对其图像预处理有所改进,n(5)和n ...

  9. 自定义求矩函数和opencv自带hu矩函数处理图像对比效果

    CV库实现图像的HU不变矩特征提取 标准矩定义为m_pq = sumsum(x^p * y^q * f(x, y))其中f(x,y)为像素点处的灰度值,求(p+q)阶中心矩的时候采用了一些推导公式,后 ...

最新文章

  1. Cygwin鸡毛蒜皮
  2. 麒麟处理器是基于arm的吗_麒麟芯片是基于ARM构架,如果得不到授权华为还能活吗?...
  3. elasticsearch使用bulk实现批量操作
  4. 实战DeviceIoControl 之中的一个:通过API訪问设备驱动程序
  5. 关于做Android+J2ee系统集成开发的一点心得
  6. 动画体系知识梳理(1) 转场动画 ContentTransition 理论篇
  7. 第七讲 一阶常系数线性ODE
  8. Java并发程序设计(八)设计模式与并发之单例模式
  9. Using ZipLib to create a Zip File in C#
  10. myeclipse下hibernate入门实例介绍
  11. 网上学c语言推荐课程网站,C语言教学网络课程网站论文
  12. StringBuilder详解
  13. 为什么Go比Java快这么多?看完这个例子就懂!
  14. linux yum 安装软件
  15. nginx: [warn] duplicate extension xxxx解决方案
  16. 张冬:OpenPOWER CAPI为什么这么快?(二)
  17. UVa 815 Flooded
  18. 【转】ST、SC、FC、LC光纤接头区别
  19. MFC控件绘制透明png图片或者半透明图片
  20. vue实现购物车简单的功能-单选全选总价计算、批量删除

热门文章

  1. 线性回归之核心概念讲解
  2. 编辑器 Typora 开始收费,开源免费的 MarkText 火了:一周剧增 2k+star
  3. 详解JNPF.APP办公系统快速开发方案
  4. Lesson6 【LINUX】Linux系统快速上手
  5. catia相合约束怎么反向_CATIA(三)——悬架DMU汇总
  6. 香港主机空间搜索引擎会不收录吗?
  7. 建立一个新的Oracle数据库
  8. Python click包详解,简单易用的命令行传入参数
  9. 搜狐白社会邀请bai.sohu.com
  10. centOS7安装搜狗拼音输入法