void test_for_AdaBoost() { MatrixXd dataset(4, 2); MatrixXd label(4, 1); dataset<<0,0, 0,1, 1,0, 1,1; label<<-1,1,1,-1; AdaptiveBoosting adaboost(dataset, label); adaboost.train(10); cout<<adaboost.infer(dataset.row(0))<<endl; cout<<adaboost.infer(dataset.row(1))<<endl; cout<<adaboost.infer(dataset.row(2))<<endl; cout<<adaboost.infer(dataset.row(3))<<endl; }
int main (int argc, char *argv[]) { /* if(argc < 2) { printf("manque arg"); } else { if(argc >= 3) { */ //deux argument:= 1er grey pour la fonction et le deuxième un nom d'image :appeler if((strcmp(argv[1],"grey"))==0) { /* SDL_Surface *surface=IMG_Load(argv[2]); goToGrey(surface);*/ example* arr; image *tab = malloc(797*sizeof(image)); arr=weightImage(tab, 797, 797); float tab1[4]={-972.0,-1.0,0.222619,24.0}; float tab2[4]={3564.0,1.0,0.204066,24.0}; float tab3[4]={-1165.5,-1.0,0.198428,21.0}; float tab4[4]={1310.0,1.0,0.209290,20.0}; float tab5[4]={751.5,1.0,0.199548,9.0}; float tab6[4]={1190.0,1.0,0.204657,20.0}; float tab7[4]={8061.5,1.0,0.178388,23.0}; float tab8[4]={-504.0,-1.0,0.214318,16.0}; float tab9[4]={-4092.0,-1.0,0.170897,24.0}; float tab10[4]={-298.5,-1.0,0.178046,3.0}; float tab11[4]={6309.0,1.0,0.144317,18.0}; float tab12[4]={143.5,1.0,0.157750,7.0}; float tab13[4]={4826.0,1.0,0.248784,38.0}; float tab14[4]={-4212.0,-1.0,0.181252,24.0}; float tab15[4]={-1092.0,-1.0,0.191624,24.0}; float tab16[4]={8412.0,1.0,0.109095,24.0}; float tab17[4]={112.5,1.0,0.104319,3.0}; float tab18[4]={-175.5,-1.0,0.166597,1.0}; float tab19[4]={4109.0,1.0,0.140488,42.0}; float tab20[4]={3173.0,1.0,0.158814,38.0}; float tab21[4]={1914.0,1.0,0.133727,12.0}; float tab22[4]={13.0,1.0,0.158362,2.0}; float tab23[4]={262.5,1.0,0.149735,5.0}; //evaluation prend en param: example *arr, int i(ieme image) // creer nb = nbligne dans fichier ,tab, lis dans le fichier et le remplis (avec serateurs...) // creer float = tab[4] * evaluate(tab, arr[i].feat[tab[3]]) for(int z=0;z<797;z++) {float a=0.630079*evaluate(tab1,arr[z].feat[81095]); float b=0.692751*evaluate(tab2,arr[z].feat[103319]); float c=0.702541*evaluate(tab3,arr[z].feat[81556]); float d=0.672720*evaluate(tab4,arr[z].feat[105231]); float e=0.699813*evaluate(tab5,arr[z].feat[109008]); float f=0.685823*evaluate(tab6,arr[z].feat[105342]); float g=0.772684*evaluate(tab7,arr[z].feat[99628]); float h=0.654340*evaluate(tab8,arr[z].feat[85502]); float i=0.796683*evaluate(tab9,arr[z].feat[77819]); float j=0.770885*evaluate(tab10,arr[z].feat[72880]); float k=0.900025*evaluate(tab11,arr[z].feat[99926]); float l=0.843853*evaluate(tab12,arr[z].feat[110235]); float m=0.557756*evaluate(tab13,arr[z].feat[99462]); float n=0.756812*evaluate(tab14,arr[z].feat[77819]); float o=0.726207*evaluate(tab15,arr[z].feat[77771]); float p=1.068905*evaluate(tab16,arr[z].feat[99467]); float q=1.084687*evaluate(tab17,arr[z].feat[110324]); float r=0.804995*evaluate(tab18,arr[z].feat[72632]); float s=0.915483*evaluate(tab19,arr[z].feat[95971]); float t=0.840918*evaluate(tab20,arr[z].feat[99757]); float u=0.943950*evaluate(tab21,arr[z].feat[106812]); float v=0.840947*evaluate(tab22,arr[z].feat[110893]); float w=0.881422*evaluate(tab23,arr[z].feat[108866]); printf("%f\n",a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w);} } // 2 argument:= 1er integral pour la fonction et le deuxième un nom d'image:appeler if((strcmp(argv[1],"integral"))==0) { SDL_Surface *surface=IMG_Load(argv[2]); int **arr= Integral(surface); printf("%d\n%d\n", getpixel(surface,0,0), getpixel(surface,0,1)); printf("%d\n",arr[0][1]); } //2 argument:= 1er haar pour la fonction et le deuxième un nom d'image:appeler if((strcmp(argv[1],"haar"))==0) { /*SDL_Surface *surface=IMG_Load(argv[2]); feature *q=haarr2(surface); if(argc==4) {printf("Le caractéristique %d vaut %d\n",atoi(argv[3]),(q[atoi(argv[3])]).res);}*/ eval(); } //2 argument 1er decision 2eme entier i: appeler if((strcmp(argv[1],"decision"))==0) { example* arr; image *tab = malloc(797*sizeof(image)); arr=weightImage(tab, 797, 797); quickSort(arr,0,796,atoi(argv[2])); float *t=decision(arr,(atoi(argv[2])),796); printf("%f|",t[0]); printf("%f|",t[1]); printf("%f|",t[2]); printf("%f|",t[3]); printf("%f|",t[4]); printf("\n"); } //2 argument adaboost pour la fonction entier T pour le nombre de tour:appeler if((strcmp(argv[1],"adaboost"))==0) { example* arr; image *tab = malloc(797*sizeof(image)); arr=weightImage(tab, 797, 797); adaboost(arr,atoi(argv[2]),320); } // if(argc == 2) // { //1 argument 1er image pour la fonction:appeler if((strcmp(argv[1],"image"))==0) { example* arr; image *tab = malloc(797*sizeof(image)); arr=weightImage(tab, 797, 797); } /* } if(argc > 2) { */ if(strcmp(argv[1], "bd") == 0) { CharacterInfo *c = NULL; c= ArrayData(); char *a = "jerome", *b = "guillaume", *e= "valentin", *d = NULL; char **tab = malloc(4 * sizeof(a)); tab[0] = a; tab[1] = b; tab[2] = e; tab[3] = d; printf("enter\n\n\n"); if(strcmp(argv[2],"-add")==0) { printf("addddddddddddddddddd!"); c=AddInfo(c, argv[3]); } if(strcmp(argv[2],"-addBatch")==0) { c=AddBatch(c, tab); } if(strcmp(argv[2], "-remove")==0) { c=RemoveInfo(c, argv[3]); } if(strcmp(argv[2] , "-modif")==0) { ModifInfo(c, argv[3], argv[4]); } if(strcmp(argv[2], "-ls")==0) { ShowList(c); } /* } } else { printf("erreur arg"); } }*/ } return 0; }