close all;
clear all;
I1=imread('lena.bmp');
angle=;
T=[cos(angle),sin(angle),;-sin(angle),cos(angle),;,,];
t1 = maketform('affine',T);
I2 = imtransform(I1,t1,'bilinear','fill',);%旋转
I2=imresize(I2,0.5);%缩放
figure;
imshow(I1);
figure;
imshow(I2);
H1=Humoment(I1)
H2=Humoment(I2)
function Hu = Humoment(I)
I=double(I);
m00=sum(sum(I));
m10=;m01=;
[row,col]=size(I);
for i=:row
for j=:col
m10=m10+i*I(i,j);
m01=m01+j*I(i,j);
end
end
xb=m10/m00;%重心坐标
yb=m01/m00; %中心距
u02 = ;u03 = ;u11 = ;u12 = ;u20 = ;u21 = ;u30 = ;
for i=:row
for j=:col
u02=u02+(j-yb)^*I(i,j);
u03=u03+(j-yb)^*I(i,j);
u11=u11+(i-xb)*(j-yb)*I(i,j);
u12=u12+(i-xb)*(j-yb)^*I(i,j);
u20=u20+(i-xb)^*I(i,j);
u21=u21+(i-xb)^*(j-yb)*I(i,j);
u30=u30+(i-xb)^*I(i,j);
end
end %归一化中心距
n02=u02/m00^;
n03=u03/m00^2.5;
n11=u11/m00^;
n12=u12/m00^2.5;
n20=u20/m00^;
n21=u21/m00^2.5;
n30=u30/m00^2.5; %Hu矩
h1 = n20 + n02;
h2 = (n20-n02)^ + *(n11)^;
h3 = (n30-*n12)^ + (*n21-n03)^;
h4 = (n30+n12)^ + (n21+n03)^;
h5 = (n30-*n12)*(n30+n12)*((n30+n12)^-*(n21+n03)^)+(*n21-n03)*(n21+n03)*(*(n30+n12)^-(n21+n03)^);
h6 = (n20-n02)*((n30+n12)^-(n21+n03)^)+*n11*(n30+n12)*(n21+n03);
h7 = (*n21-n03)*(n30+n12)*((n30+n12)^-*(n21+n03)^)-(*n12-n30)*(n21+n03)*(*(n30+n12)^-(n21+n03)^);
Hu = [h1 h2 h3 h4 h5 h6 h7];

结果:

对于两图像做测试,其中第二幅是第一幅旋转30度并缩小到1/4大小:

上述两幅图计算出的Hu矩都为:

0.0012    0.0000    0.0000    0.0000   -0.0000   -0.0000    0.0000

Hu矩的更多相关文章

  1. Hu矩SVM训练及检测-----OpenCV

    关键词:Hu矩,SVM,OpenCV 在图像中进行目标物识别,涉及到特定区域内是否存在目标物,SVM可在样本量较少情况下对正负样本(图片中前景背景)做出良好区分,图片基本特征包括诸如HOG.LBP.H ...

  2. opencv计算两个轮廓之间hu矩相似程度,MatchShapes

    https://blog.csdn.net/jiake_yang/article/details/52589063 [OpenCV3.3]通过透视变换矫正变形图像 https://blog.csdn. ...

  3. 【图像基础】图像不变性特征HU矩和Zernike矩

    参考 1. 图像不变性特征: 2. matlab实现: 3. HU矩和Zernike矩: 完

  4. 几何不变矩--Hu矩

    [图像算法]图像特征: ---------------------------------------------------------------------------------------- ...

  5. 【图像算法OpenCV】几何不变矩--Hu矩

    原文地址  http://blog.csdn.NET/daijucug/article/details/7535370 [图像算法OpenCV]几何不变矩--Hu矩 一 原理 几何矩是由Hu(Visu ...

  6. opencv —— moments 矩的计算(空间矩/几何矩、中心距、归一化中心距、Hu矩)

    计算矩的目的 从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的几何特征信息,如大小,位置.方向和形状等.这种描述能力广泛应用于各种图像处理.计算机视觉和机器人 ...

  7. opencv中的图像矩(空间矩,中心矩,归一化中心矩,Hu矩)

    严格来讲矩是概率与统计中的一个概念,是随机变量的一种数字特征.设 x 为随机变量,C为常数,则量E[(x−c)^k]称为X关于C点的k阶矩.比较重要的两种情况如下: 1.c=0,这时a_k=E(X^k ...

  8. 形状特征提取-Hu不变矩(转载)

    [原文部分转载]:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx 在连续情况下,图像函数为 ,那么图像的p+q阶几何矩 ...

  9. OpenCV学习(33) 轮廓的特征矩Moment

    在OpenCV中,可以很方便的计算多边形区域的3阶特征矩,opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩. class Moments { public: ...... // 空间矩 ...

随机推荐

  1. python 爬虫1 開始,先拿新浪微博開始

    刚刚開始学. 目的地是两个.一个微博,一个贴吧 存入的话,临时还没想那么多.先存到本地目录吧 分词和推荐后面在整合 mysql mongodb hadoop redius 后面在用 我最终知道为什么大 ...

  2. scala快速学习笔记(一):变量函数,操作符,基本类型

    为了用spark,先学下scala. 参考教程:http://meetfp.com/zh/scala-basic doc查询:http://docs.scala-lang.org 其它资料:http: ...

  3. mongo-spark 安装排故 ./sbt check

    [error] at com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:) [error] at com.mong ...

  4. React创建组件的三种方式比较和入门实例

    推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...

  5. linux 查看权限

    参考文章:http://www.linuxidc.com/Linux/2014-10/108114.htm Linux文件访问权限分为可读,可写和可执行三种. 可用ls -l命令查看,例: ls -l ...

  6. IE兼容模式

    何为兼容模式 这个和IE的发展历程相关,在IE8之前Browser基本上属于IE一家独大,然后ie就有很多与web standard不一致的地方,比如只有自己才看得懂的tag等.后来由于chrome, ...

  7. POJ3111 K Best —— 01分数规划 二分法

    题目链接:http://poj.org/problem?id=3111 K Best Time Limit: 8000MS   Memory Limit: 65536K Total Submissio ...

  8. 修改DEDE系统数据库表前缀

    1,修改之前我们先备份下数据(哥们儿之前没有备份,我艹,害苦了),备份的操作过程是:网站后台------系统------数据库备份/还原-------然后按提交.默认保存的数据在data/backup ...

  9. 鼠标滑过TAB选项卡切换demo 可拓展

    <html> <head> <script type="text/javascript"> <!-- function ShowTabs( ...

  10. fuse的mount机制-流程及参数

    在bbfs中,传递的参数有两个目录,fuse将一个目录挂载在另一个目录下. 在ssfs中,传递的参数只有一个目录(传递两个目录fuse会出错). 问题:那么fuse的mount机制到底需要几个目录参数 ...