Exemple #1
0
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;
}