求不变矩matlab,求HU不变矩七个参数

此篇博客介绍了如何使用 MATLAB 实现基于不变矩的图像特征提取,通过RGB图像读取、灰度转换、二值化,然后计算不同尺度和旋转下的不变矩,用于图像识别和特征匹配。遇到的问题是函数'invariance'未定义,可能是调用错误或缺失库。

本帖最后由 三棵树731953873 于 2014-2-10 10:00 编辑

主程序:

RGB = imread('D:\2.jpg');

figure,imshow(RGB);

I = rgb2gray(RGB);

threshold = graythresh(I);bw = im2bw(I,threshold);

image=double(bw);[invariancematrix]=invariance(image,100,45)

调用程序:function [invariancematrix]=invariance(image,size_order,rotate)%image: 输入图形

%%size_order: 图形的放大倍率

%%rotate: 图形旋转的角度

%%invariancematrix: 计算出的不变矩%

X=image;

[F_x F_y]=size(X);

F=IMRESIZE(X,[fix(F_x*size_order) fix(F_y*size_order)]); %改变图像大小

F=imrotate(F,rotate);                                                        %改变图像角度

[F_x F_y]=size(F);

%求x的平均值%

F_xsum=sum(F,2);

temp=1:F_x;

temp=temp';

mean_temp=temp.*F_xsum;mean_x=sum(mean_temp)/sum(sum(F));

%求y的平均值%

F_ysum=sum(F,1);

temp=1:F_y;

mean_temp=temp.*F_ysum;

mean_y=sum(mean_temp)/sum(sum(F));

%求各阶矩%

for p=0:3

for q=0:3      r(p+1,q+1)=(p+q)/2+1;

x=1:F_x;

x=x-mean_x;

x=x.^p;

y=1:F_y;

y=y-mean_y;

y=y.^q;

u_temp=x'*y;

u(p+1,q+1)=sum(sum(u_temp.*F));

end

end

%标准中心矩%

n=u./u(1,1).^r;

%七个不变矩%

invariancematrix(1,1)=log10(abs(n(3,1)+n(1,3)));

invariancematrix(1,2)=log10(abs((n(3,1)-n(1,3)).^2+4*n(2,2).^2));

invariancematrix(1,3)=log10(abs((n(4,1)-3*n(2,3)).^2+(3*n(3,2)-n(1,4)).^2));

invariancematrix(1,4)=log10(abs((n(4,1)+n(2,3)).^2+(n(3,2)+n(1,4)).^2));

invariancematrix(1,5)=log10(abs((n(4,1)-3*n(2,3))*(n(4,1)+n(2,3))*((n(4,1)-n(2,3)).^2-3*(n(3,2)+n(1,4)).^2)+(3*n(3,2)-n(1,4))*(n(3,2)+n(1,4))*((3*n(4,1)+n(2,3)).^2-(n(3,2)+n(1,4)).^2)));

invariancematrix(1,6)=log10(abs((n(3,1)-n(1,3))*((n(4,1)+n(2,3)).^2-(n(3,2)+n(1,4)).^2)+4*n(2,2)*(n(4,1)+n(2,3))*(n(3,2)+n(1,4))));

invariancematrix(1,7)=log10(abs((3*n(3,2)-n(1,4))*(n(4,1)+n(2,3))*((n(4,1)+n(2,3)).^2-3*(n(3,2)+n(1,4)).^2)+(3*n(2,3)-n(4,1))*(n(3,2)+n(1,4))*((3*n(4,1)+n(2,3)).^2-(n(3,2)+n(1,4)).^2)));

总是出来这个Undefined function 'invariance' for input arguments of type

'double'.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值