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

最新文章

  1. [解决方案] pythonchallenge level 3
  2. SQL日期格式化应用大全
  3. iOS 更改webView文字颜色丶文字大小丶背景色的方法
  4. APIO2015泛做
  5. windows下安装openssh服务并实现远程登录
  6. HTML5 webSQL
  7. CROSS APPLY和 OUTER APPLY 区别
  8. BAT 批处理实现循环备份N天文件夹
  9. PHP程序员衰老后的下场
  10. JDK根目录介绍
  11. apply()
  12. 学编程担心自己英语不好吗?(IT软件开发常用英语词汇)
  13. 重载重写重定义-易混淆概念-C++编译器处理方式
  14. MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述
  15. jenkins中布置python测试
  16. 剑指offer(12)数值的整数次方
  17. linux 下安装doker centeros6.5
  18. ThinkPHP5路由图解
  19. 未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件
  20. Revit二次开发示例:AutoStamp

热门文章

  1. 设计模式学习笔记——Mediator中介者模式
  2. 在Qt Creator中为Qt工程添加资源
  3. 求a + aa + aaa + aaaa + aaaaa ...的值,例如:1 + 11 + 111,2 + 22 + 222 + 2222 + 22222
  4. 轮廓线DP:poj 2279 Mr. Young's Picture Permutations
  5. 贞鱼传教&&贞鱼传教(数据加强版)
  6. 数组、栈、堆(java基础知识五)
  7. BroadcastReceiver中调用Service
  8. BZOJ_3063_[Usaco2013]Route Designing_DP
  9. 【转】nose-parameterized是Python单元测试框架实现参数化的扩展
  10. 安装并配置JAVA环境