Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}