matlab練習程式(7個二維不變矩)

2022-06-12 06:12:07 字數 2353 閱讀 7237

《數字影象處理》書上說這7個矩是旋轉、縮放、平移不變的,因此用這7個矩就可以代表乙個影象了。我只試驗了縮放的,這幾個數幾乎是不變的,也許做影象檢索的時候可以用到。

%影象的各階矩

mm=zeros(4,4);

for y=1:m

for x=1:n

for q=1:4

for p=1:4

mm(q,p)=mm(q,p)+x^(p-1)*y^(q-1)*img(y,x);

endend

endend

mean_x=mm(2,1)/mm(1,1);

mean_y=mm(1,2)/mm(1,1);

%三階中心矩

u00=mm(1,1);

u11=mm(2,2)-mean_y*mm(2,1);

u20=mm(3,1)-mean_x*mm(2,1);

u02=mm(1,3)-mean_y*mm(1,2);

u30=mm(4,1)-3*mean_x*mm(3,1)+2*mean_x^2*mm(2,1);

u03=mm(1,4)-3*mean_y*mm(1,3)+2*mean_y^2*mm(1,2);

u21=mm(3,2)-2*mean_x*mm(2,2)-mean_y*mm(3,1)+2*mean_x^2*mm(1,2);

u12=mm(2,3)-2*mean_y*mm(2,2)-mean_x*mm(1,3)+2*mean_y^2*mm(2,1);

%歸一化中心矩

n20=u20/u00^2;

n02=u02/u00^2;

n11=u11/u00^2;

n30=u30/u00^2.5;

n03=u03/u00^2.5;

n12=u12/u00^2.5;

n21=u21/u00^2.5;

%7個不變矩

fai(1) = n20 + n02;

fai(2) = (n20-n02)^2 + 4*n11^2;

fai(3) = (n30-3*n12)^2 + (3*n21-n03)^2;

fai(4) = (n30+n12)^2 + (n21+n03)^2;

fai(5) = (n30-3*n12)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n21-n03)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);

fai(6) = (n20-n02)*((n30+n12)^2-(n21+n03)^2)+4*n11*(n30+n12)*(n21+n03);

fai(7) = (3*n21-n03)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n12-n30)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);

end

結果:原圖:

0.0013419687027165 6.95655523873184e-09 1.24916604653673e-12 1.17939356080133e-11 -3.26570081740069e-24 -9.12854751076559e-16 -4.51507718900331e-23

放大後:

0.00134188447993572 6.96492642036082e-09 1.25147100094404e-12 1.18051442412046e-11 -3.17744677490662e-24 -9.14215664936433e-16 -4.52636844796181e-23

縮小後:

0.00134196941138094 6.95708662151456e-09 1.24992393394962e-12 1.17952059702159e-11 -3.25857426504391e-24 -9.12913253473569e-16 -4.51723884830695e-23

這幾個數的數量級如此小,可以認為幾乎就不變了。

matlab練習程式(7個二維不變矩)

數字影象處理 書上說這7個矩是旋轉 縮放 平移不變的,因此用這7個矩就可以代表乙個影象了。我只試驗了縮放的,這幾個數幾乎是不變的,也許做影象檢索的時候可以用到。影象的各階矩 mm zeros 4,4 for y 1 m for x 1 n for q 1 4 for p 1 4 mm q,p mm ...

二維陣列練習

1 建立乙個稱作array2d 的類,在main 方法中宣告乙個稱作twod的變 量,型別為int二維陣列,第一維長度為4。2 建立乙個元素型別為int的陣列,該陣列應包括4 個元素並被賦值到變數twod 0 3 編寫兩個巢狀for 迴圈語句以列印twod 的全部值,以矩陣的格式輸出。4 編譯並執行...

Matlab二維插值

y interp2 x,y,z,xi,yi,method method nearest 最鄰近插值 linear 預設 雙線性插值 cubic 雙三次插值 示例如下 例 已知平板表面3 5的網格處的溫度值為 82 79 84 81 63 84 80 61 82 82 65 85 84 81 86做出...