int Statistic::ajustement(QVector<double> &Xi,QVector<double> &Yi,int n) { QVector<double> r(5),lnXi(100),lnYi(100),logXi(100),logYi(100),invXi(100); //corrélation pour linéaire r[0]=val_abs(corr(Xi,Yi,n)); //corrélation pour exponetielle lntab(Yi,lnYi,n); r[1]=val_abs(corr(Xi,lnYi,n)); //corrélation pour puissance logtab(Xi,logXi,n); logtab(Yi,logYi,n); r[2]=val_abs(corr(logXi,logYi,n)); //corrélation pour inverse invtab(Xi,invXi,n); r[3]=val_abs(corr(invXi,Yi,n)); //corrélation pour logarithmique lntab(Xi,lnXi,n); r[4]=val_abs(corr(lnXi,Yi,n)); //Test du meilleur ajustement return rmax(r); }
int HrPwWindow::fit(QVector<double> &Xi,QVector<double> &Yi,int n) { QVector<double> r(5),lnXi(100),lnYi(100),logXi(100),logYi(100),invXi(100); //Linear correlation r[0]=val_abs(corr(Xi,Yi,n)); //Exponential correlation lnarray(Yi,lnYi,n); r[1]=val_abs(corr(Xi,lnYi,n)); //Power correlation logarray(Xi,logXi,n); logarray(Yi,logYi,n); r[2]=val_abs(corr(logXi,logYi,n)); //Inverse correlation invarray(Xi,invXi,n); r[3]=val_abs(corr(invXi,Yi,n)); //Logarithmic correlation lnarray(Xi,lnXi,n); r[4]=val_abs(corr(lnXi,Yi,n)); //Best fit test return rmax(r); }
main () { int i,j,k; for (i=0; i < PICTURE_VERTICAL_SIZE; i++) { for (j=PICTURE_HORIZONTAL_OFFSET; j < PICTURE_HORIZONTAL_SIZE+PICTURE_HORIZONTAL_OFFSET; j++) { image_original[i][j-PICTURE_HORIZONTAL_OFFSET] = Y_test[i][j]; } } for (i=0; i < PICTURE_VERTICAL_SIZE; i++) { for (j=PICTURE_HORIZONTAL_OFFSET; j < PICTURE_HORIZONTAL_SIZE+PICTURE_HORIZONTAL_OFFSET; j++) { image_test[i][j-PICTURE_HORIZONTAL_OFFSET] = Y_test[i][j]; } } for (i=0; i < PICTURE_VERTICAL_SIZE; i++) { for (j=PICTURE_HORIZONTAL_OFFSET; j < PICTURE_HORIZONTAL_SIZE+PICTURE_HORIZONTAL_OFFSET; j++) { image_back[i][j-PICTURE_HORIZONTAL_OFFSET] = Y_back[i][j]; } } printf("Starting Motion Detection Application: \n\n"); printf("__attribute__((section(\".heapl2ram\"))) pixel Y_back[%d][%d] = \n{\n",PICTURE_VERTICAL_SIZE,PICTURE_HORIZONTAL_SIZE); print_image_vect((pixel*)image_back); printf("};\n"); printf("__attribute__((section(\".heapl2ram\"))) pixel Y_test[%d][%d] = \n{\n",PICTURE_VERTICAL_SIZE,PICTURE_HORIZONTAL_SIZE); print_image_vect((pixel*)image_test); printf("};\n"); printf("Subtraction and binarization treshold \n\n"); sub_image((pixel*)image_test, (pixel*)image_back); print_image((pixel*)image_test); max_pixel= max_image((pixel*)image_test); printf("Max pixel = %d \n\n",max_pixel); printf("Binarization \n\n"); binarisation((pixel*)image_test, (int)max_pixel*3/10,1,0); print_image((pixel*)image_test); printf("Erosion \n\n"); erosion((pixel*)image_test,KERNEL_SIZE,(pixel*)image_back); print_image((pixel*)image_back); printf("Dilatation \n\n"); dilatation((pixel*)image_back,KERNEL_SIZE ,(pixel*)image_test_out); print_image((pixel*)image_test_out); printf("Sobel Horizontal \n\n"); convolution_rect((pixel*)image_test_out, KERNEL_SIZE, sobel1,(pixel*)image_test); val_abs((pixel*)image_test); print_image((pixel*)image_test); printf("Sobel Vertical \n\n"); convolution_rect( (pixel*)image_test_out, KERNEL_SIZE, sobel2,(pixel*)image_back); val_abs((pixel*)image_back); print_image((pixel*)image_back); printf("Final Sum \n\n"); sum_image((pixel*)image_test, (pixel*)image_back); binarisation((pixel*)image_test, 1,0,1); print_image((pixel*)image_test); printf("Final Multiplication \n\n"); multiply((pixel*)image_test, (pixel*)image_original); printf("__attribute__((section(\".heapl2ram\"))) pixel Y_golden[%d][%d] = \n{\n",PICTURE_VERTICAL_SIZE,PICTURE_HORIZONTAL_SIZE); print_image_vect((pixel*)image_test); printf("};\n\n"); printf("Motion Detection Application Completed\n"); }