Download presentation
Presentation is loading. Please wait.
Published byJohan Kartawijaya Modified over 6 years ago
1
MOMENTS AND MOMENT INVARIANTS IN PATTERN RECOGNITION
Neizrazita logika
3
Moments Moments are scalar quantities used to characterize a function and to capture its significant features. used in statistics for description of the shape of a probability density function used in classic rigid-body mechanics to measure the mass distribution of a body From the mathematical point of view, moments are “projections” of a function onto a polynomial basis (similarly, Fourier transform is a projection onto a basis of harmonic functions).
4
General moments
5
Geometric moments
6
Complex moments
7
Moment invariants to translation and rotation
8
Invariants to translation central geometric moments
9
Rotation invariants from complex moments
Basis of invariants of the second and third orders:
10
Algorithms for moment computation
11
Geometric moments – Matlab funkcija
Kontinuirani: Diskretni: function m_pq = Moment_pq(A,p,q) sum1=0; [n2 n1]=size(A); for i=1:n1, for j=1:n2, sum1=sum1+i^p*j^q*A(j,i); end m_pq=sum1;
12
Central moments – Matlab funkcija
Kontinuirani: Diskretni: function cm_pq = Central_pq(A,p,q) m00 = Moment_pq(A,0,0); m10 = Moment_pq(A,1,0); m01 = Moment_pq(A,0,1); mx1 = m10/m00; my1 = m01/m00; sum1=0; [n2 n1]=size(A); for i=1:n1, for j=1:n2, sum1=sum1+(i-mx1)^p*(j-my1)^q*A(j,i); end cm_pq = sum1;
13
Complex (central) moments – Matlab funkcija
Kontinuirani: Diskretni: function cx_pq = CComplex_pq(A,p,q) m00 = Moment_pq(A,0,0); m10 = Moment_pq(A,1,0); m01 = Moment_pq(A,0,1); mx1 = m10/m00; my1 = m01/m00; sum1=0; [n2 n1]=size(A); for ii=1:n1, for jj=1:n2, sum1=sum1+((ii-mx1)+(jj-my1)*i)^p*((ii-mx1)-(jj-my1)*i)^q*A(jj,ii); end cx_pq = sum1;
14
Izbor baze centralnih momenata invarijantne na translacije
function vm = VektorCentralMoments(A) c00 = Central_pq(A,0,0); c20 = Central_pq(A,2,0); c02 = Central_pq(A,0,2); c30 = Central_pq(A,3,0); c03 = Central_pq(A,0,3); c40 = Central_pq(A,4,0); c04 = Central_pq(A,0,4); % variance of a distribution: w20 = sqrt(c20/c00); w02 = sqrt(c02/c00); % skewness of a distribution: w30 = c30/c20^(3/2); w03 = c03/c02^(3/2); % kurtosis of a distribution: w40 = c40/c20^2; w04 = c04/c02^2; % base vector of central moments: vm = [w20 w02 w30 w03 w40 w04];
15
Izbor baze kompleksnih momenata invarijantne na translacije i rotacije
function vcm = VektorComplexMoments(A) c11 = CComplex_pq(A,1,1); c21 = CComplex_pq(A,2,1); c12 = CComplex_pq(A,1,2); c20 = CComplex_pq(A,2,0); c30 = CComplex_pq(A,3,0); F11 = c11; F21 = c21*c12; F20 = c20*c12^2; F30 = c30*c12^3; rF20 = real(F20); iF20 = imag(F20); rF30 = real(F30); iF30 = imag(F30); vcm = [F11 F21 rF20 iF20 rF30 iF30];
16
Normalizirana razlika baznih vektora
Bazni vektor (kompleksni ili centralni) slike A: Norma baznog vektora slike A: Normirana razlika baznih vektora slike A i slike B: Ako su slike A i slike B “jednake” (A = translatirana/rotirana B): D(A,B) 0 Ako su slike A i slike B različite: 0 << D(A,B) 1
17
Main1.m %% Ucitavanje slika u jpg formatu: rE=imread('SlovoE.jpg'); %% Konverzija slika u Logicke varijable 0 i 1 %% BIJELO == 1 !!! %% CRNO == !!! levelE = graythresh(rE); E = im2bw(rE,levelE); %% Inverzija BIJELOG (1) U CRNO (0); 1 -> 0 & 0 -> 1; E=1-E; figure(1), subplot(231), imshow(1-E) %% Translacija slike za Lx i Ly: Lx=100; Ly=75; EE = Translation(E,Lx,Ly); %% Rotacija slike za Theta: Theta=90; % stupnjevi (deg) ER = imrotate(E,Theta,'crop'); Complex_E = VektorComplexMoments(E) Complex_EE = VektorComplexMoments(EE) Complex_ER = VektorComplexMoments(ER) Complex_RazlikaIzmedju_E_i_EE = norm(Complex_E - Complex_EE)/(norm(Complex_E)+norm(Complex_EE))
18
Centralni i kompleksni momenti u slučaju translacije i rotacije
Main1.m Centralni i kompleksni momenti u slučaju translacije i rotacije Central_E = [ ] Complex_E = 1.0e+040 *[ ] Central_EE =[ ] Complex_EE =1.0e+040 *[ ] Central_RazlikaIzmedju_E_i_EE = 0 Complex_RazlikaIzmedju_E_i_EE = e-015 Central_ER =[ ] Complex_ER =1.0e+040 *[ ] Central_RazlikaIzmedju_E_i_ER = Complex_RazlikaIzmedju_E_i_ER = e-014
19
Main2.m Normirane razlike baznih vektora kompleksnih momenata u slučaju translacije i rotacije tri različita objekta (slova E, T, H)
20
Main2.m Normirane razlike baznih vektora kompleksnih momenata u slučaju translacije i rotacije tri različita objekta (slova F, L, Z)
21
Imamo 8 objekata koje naš vizijski sustav treba prepoznati:
Main3.m Imamo 8 objekata koje naš vizijski sustav treba prepoznati: Objekt 1 Objekt 2 Objekt 3 Objekt 4 Objekt 5 Objekt 6 Objekt 7 Objekt 8 Ispod kamere su ti dijelovi nepravilno razbacani - translatirani i/ili zarotirani u odnosu na originalne (gornje) uzorke. Npr.: Uzorak 1 Uzorak 2 Uzorak 3 Računamo normirane razlike kompleksnih baznih vektora između ulaznog uzorka i svih 8 objekata (Complex_Razlika) =>
22
Main3.m Uzorak 1 Complex_Razlika = [ ] Uzorak 1 – Objekt 8 = najmanji !!! Vidimo da su dva ista slovo u različitim fontovima više nego jasno razlučena ! Uzorak 2 Complex_Razlika = [ ] Uzorak 2 – Objekt 6 = najmanji !!! Complex_Razlika = [ ] Uzorak 3 Uzorak 3 – Objekt 7 = najmanji !!!
23
Invarijantnost na uniformno skaliranje
Scaling invariance is obtained by proper normalization of each moment Any moment can be used as a normalizing factor
24
Skalirani centralni momenti
function scm_pq = ScaledCM_pq(A,p,q) m00 = Moment_pq(A,0,0); m10 = Moment_pq(A,1,0); m01 = Moment_pq(A,0,1); mx1 = m10/m00; my1 = m01/m00; sum1=0; [n2 n1]=size(A); for i=1:n1, for j=1:n2, sum1=sum1+(i-mx1)^p*(j-my1)^q*A(j,i); end cm_pq = sum1; scm_pq = cm_pq/m00^(1+(p+q)/2);
25
Skalirani kompleksni momenti
Invarijantan na: translaciju, rotaciju i skaliranje ! function scx_pq = SCComplex_pq(A,p,q) m00 = Moment_pq(A,0,0); m10 = Moment_pq(A,1,0); m01 = Moment_pq(A,0,1); mx1 = m10/m00; my1 = m01/m00; sum1=0; [n2 n1]=size(A); for ii=1:n1, for jj=1:n2, sum1=sum1+((ii-mx1)+(jj-my1)*i)^p*((ii-mx1)-(jj-my1)*i)^q*A(jj,ii); end cx_pq = sum1; scx_pq = cx_pq/m00^(1+(p+q)/2);
26
Main4.m Skalirani centralni i kompleksni momenti u slučaju skalirane translacije i rotacije ScaledCentral_E = [ ] ScaledComplex_E = [ ] ScaledCentral_EE = [ ] ScaledComplex_EE = [ ] Central_RazlikaIzmedju_E_i_EE = Complex_RazlikaIzmedju_E_i_EE = ScaledCentral_RazlikaIzmedju_E_i_EE = ScaledComplex_RazlikaIzmedju_E_i_EE = e-004 ScaledCentral_ER = [ ] ScaledComplex_ER = [ ] Central_RazlikaIzmedju_E_i_ER = Complex_RazlikaIzmedju_E_i_ER = ScaledCentral_RazlikaIzmedju_E_i_ER = ScaledComplex_RazlikaIzmedju_E_i_ER =
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.