double image::zncc(int i1,int j1,const image & comp,int i2,int j2,int n, int p)const{ double som = 0; double res = 0; double moy1 = moyenne(i1,j1,n,p); double moy2 = comp.moyenne(i2,j2,n,p); double sigma1 = sigma(i1,j1,n,p); double sigma2 = comp.sigma(i2,j2,n,p); for(int i=-n;i<=n;i++){ for(int j=-p;j<=p;j++){ som+=((*this)(i1+i,j1+j)-moy1) * ((comp(i2+i,j2+j)-moy2)); } } res = (1.0/(sigma1*sigma2)) * som ; return res; }