Hu矩


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矩的更多相关文章
- Hu矩SVM训练及检测-----OpenCV
关键词:Hu矩,SVM,OpenCV 在图像中进行目标物识别,涉及到特定区域内是否存在目标物,SVM可在样本量较少情况下对正负样本(图片中前景背景)做出良好区分,图片基本特征包括诸如HOG.LBP.H ...
- opencv计算两个轮廓之间hu矩相似程度,MatchShapes
https://blog.csdn.net/jiake_yang/article/details/52589063 [OpenCV3.3]通过透视变换矫正变形图像 https://blog.csdn. ...
- 【图像基础】图像不变性特征HU矩和Zernike矩
参考 1. 图像不变性特征: 2. matlab实现: 3. HU矩和Zernike矩: 完
- 几何不变矩--Hu矩
[图像算法]图像特征: ---------------------------------------------------------------------------------------- ...
- 【图像算法OpenCV】几何不变矩--Hu矩
原文地址 http://blog.csdn.NET/daijucug/article/details/7535370 [图像算法OpenCV]几何不变矩--Hu矩 一 原理 几何矩是由Hu(Visu ...
- opencv —— moments 矩的计算(空间矩/几何矩、中心距、归一化中心距、Hu矩)
计算矩的目的 从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的几何特征信息,如大小,位置.方向和形状等.这种描述能力广泛应用于各种图像处理.计算机视觉和机器人 ...
- opencv中的图像矩(空间矩,中心矩,归一化中心矩,Hu矩)
严格来讲矩是概率与统计中的一个概念,是随机变量的一种数字特征.设 x 为随机变量,C为常数,则量E[(x−c)^k]称为X关于C点的k阶矩.比较重要的两种情况如下: 1.c=0,这时a_k=E(X^k ...
- 形状特征提取-Hu不变矩(转载)
[原文部分转载]:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx 在连续情况下,图像函数为 ,那么图像的p+q阶几何矩 ...
- OpenCV学习(33) 轮廓的特征矩Moment
在OpenCV中,可以很方便的计算多边形区域的3阶特征矩,opencv中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩. class Moments { public: ...... // 空间矩 ...
随机推荐
- 浅谈JavaScript的事件(事件流)
事件流描述的是从页面中接收事件的顺序.IE的事件流失事件冒泡,而Netspace的事件流失事件捕获. 事件冒泡 IE的事件流叫事件冒泡,即事件开始时,由具体的元素(文档中嵌套层次最深的节点)接收,然 ...
- 【bzoj4240】有趣的家庭菜园
只要统计每一个左右分别有多少比他高的去min,然后求和 #include<algorithm> #include<iostream> #include<cstdlib&g ...
- 使用Mock.js进行独立于后端的前端开发
Mockjs能做什么? 基于 数据模板 生成模拟数据. 基于 HTML模板 生成模拟数据. 拦截并模拟 ajax 请求. 能解决的问题 开发时,前后端进度不同步,后端还没完成数据输出,前端只好写静态模 ...
- STM32的低功耗设置
因为产品需求,系统功耗是一个很重要的考虑方面.好好看下STM32F103的低功耗问题,以便编写驱动. 1.STM32的电源 1.1 STM32电源框图 上面的电源中需要注意的是后备供电区域,这个部分由 ...
- 图解 servlet 与jsp的关系
Servlet是Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容.Servlet是平台独立的Java类,编写一个Servlet,实际 ...
- redis11----监控工具 sentinel
当master宕机了要把slave1变为master,并把slave2指向slave1. 可以运行时更改master-slave,config set/get,修改一台slave(设为A)为new m ...
- 取clientdataset detal中的 更新数据, 将detal 转 数据库脚本sql
转自永南博客,更改update 脚本只取变化字段,更改排除blob与数组字段,这两个类型会报错 function vartosql(value: Variant): wideString; var ...
- vue-router-h5-history
vue-router的HTML5 History 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面. const router = new V ...
- Linux下配置rsync服务器
一.简介 rsync是一个远程数据同步工具,可以快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都 ...
- java如何判断字符串是否为空(小知识)
方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方 ...