資源簡介
不變矩的matlab程序,經(jīng)過驗(yàn)證 是正確的 ,很實(shí)用啊 ··········
代碼片段和文件信息
I0=imread(‘lena.jpeg‘);
if?isrgb(I0)==1
????I1=rgb2gray(I0)
end
I2=imrotate(I1-4‘bilinear‘);??%逆時(shí)針旋轉(zhuǎn)4度
I3=fliplr(I1);??????????????????%鏡像
subplot(141)imshow(I1);
subplot(142)imshow(I2);
subplot(143)imshow(I3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%計(jì)算I1七個(gè)不變矩
%(1)計(jì)算I1的而質(zhì)心
%(2)計(jì)算各階中心矩
%(3)計(jì)算不變中心矩的值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I1=double(I1);
[MN]=size(I1);
[xy]=meshgrid(1:M1:N);
x=x(:);
y=y(:);
I1=I1(:);
m00=sum(I1);
m10=sum(x.*?I1);
m01=sum(y.*?I1);
xcenter=m10/m00;
ycenter=m01/m00;
%?計(jì)算歸一化的各階中心矩,具有平移不變性和伸縮不變性
cm00=m00;
cm02=sum((y-ycenter).^2.*I1)/(m00^2);
cm11=sum((x-xcenter).*(y-ycenter).*I1)/(m00^2);
cm12=sum((x-xcenter).*(y-ycenter).^2.*I1)/(m00^2.5);
cm21=sum((x-xcenter).^2.*(y-ycenter).*I1)/(m00^2.5);
cm03=sum((y-ycenter).^3.*I1)/(m00^2.5);
cm30=sum((x-xcenter).^3.*I1)/(m00^2.5);
cm20=sum((x-xcenter).^2.*I1)/(m00^2);
%計(jì)算七個(gè)不變矩
im(1)=abs(log(cm20+cm02))
im(2)=abs(log((cm20-cm02)^2+4*cm11^2))
im(3)=abs(log((cm30-3*cm12)^2+(3*cm21-cm03)^2))
im(4)=abs(log((cm30+cm12)^2+(cm21+cm03)^2))
im(5)=abs(log((cm30-3*cm12)*(cm30+cm12)*((cm30+cm12)^2-3*(cm21+cm03)^2)+(3*cm21-cm03)*(cm21+cm03)*(3*(cm30+cm12)^2-(cm21+cm03)^2)))
im(6)=abs(log((cm20-cm02)*((cm30+cm12)^2-(cm21+cm03)^2)+4*cm11*(cm30-cm12)*(cm21+cm03)))
im(7)=abs(log((3*cm21-cm02)*(cm21+cm30)*((cm30+cm12)^2-3*(cm21+cm03)^2)-(cm30-3*cm12)*(cm21+cm03)*(3*(cm30+cm12)^2-(cm21+cm03)^2)))
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%?分別對三個(gè)圖像進(jìn)行不變矩的計(jì)算,結(jié)果證明他們的很接近。
%不變矩具有平移不變性、伸縮不變性、旋轉(zhuǎn)不變性。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1830??2009-09-04?18:50??Invariant?moments.m
-----------?---------??----------?-----??----
?????????????????1830????????????????????1
評論
共有 條評論