Você está na página 1de 2

void moran (IplImage* img, double *mor) { CvPoint I, J; double lagtolerance = 0.

45; double angletolerance = 45; double W = 0, X = 0; CvScalar mean; int N = (img->height * img->width); // QUANTIDADE DE PIXELS int i, j, k, l, m, n, kmax, lmax; double lag[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // LAG DEFINIDO COMO 1 0 PIXELS DE DISTANCIA? double azimuth[4] = {0, 90, 180, 270}; // 4 ANGULOS UTILIZADOS - DIREO - C ORRIGIR cvAvgSdv(img, &mean, NULL, img); // DESVIO PADRO - PARAMETROS: ENTRADA, M EDIA, DESVIO PADRO, MASCARA for (m = 0; m < 10; m++){ // 10 DE LAG for (n = 0; n < 4; n++){ // 4 DE AZIMUTH mor[m*4+n] = 0; // ESTE NDICE RETORNAR 0,1,2,3,4,5.. 39 CADA POSIO SER UMA DAS 40 CARACTERSTICAS EXTRAIDAS ATRAVZ MORAN for (i = 0; i < img->height; i++) { // ALTURA for (j = 0; j < img->width; j++) {//LARGURA //////////////// EXTRAO DE CARACTERSTICAS C ORRESPONDE ESSE PONTO? I.x = i; I.y = j; //STRUCT CVPOINT = .x .y e .point k = (i - (int)lag[m]) < 0 ? 0 : (i - (in t)lag[m]); // IF ((i - (int)lag[m]) < 0) K = 0; ELSE K = (i - (int)lag[m]); l = (j - (int)lag[m]) < 0 ? 0 : (j - (in t)lag[m]); // kmax = (i + (int)lag[m]) > img->height ? 0 : (i + (int)lag[m]); lmax = (j + (int)lag[m]) > img->width ? 0 : (j + (int)lag[m]); //////////////////////////////////////// //////////////////////// for (; k < kmax; k++){ for (; l < lmax; l++){ J.x = k; J.y = l; if (isLag (I, J, lag[m], lagtolerance)){ // VERIFICA SE ESTA DENTRO DO LAG MAXIMO if (isAzimuth (I , J, azimuth[n], angletolerance)){ // VERIFICA SE ESTA DENTRO DO ANGULO MAXIMO double p ixI = cvGet2D(img, I.x, I.y).val[0]; /// PEGANDO O VALOR DO PIXEL NA IMG[X,Y] double p ixJ = cvGet2D(img, J.x, J.y).val[0]; if (pixI != 0 && pixJ != 0){ X += pow(pixI - mean.val[0], 2);// X = CALCULO EXPOENCIAL EX. POW (7,3) = 349 W += weight(I, J); // PESO ENTRE I E J mor[m * 4 + n] += weight(I,J) * ((pixI - mean.val[0]) * (pixJ - mean.val[0])); } } }

} } } } mor[m * 4 + n] = ((N) * mor[m * 4 + n]) / (W * X); if(isnan(mor[m * 4 + n]) != 0) mor[m * 4 + n] = (double) 0.0; } } }

Você também pode gostar