Пример #1
0
void Translation::run(vector<string> pArgParam,string input, string output){
	unused(pArgParam);
	ImagePNG* img = new ImagePNG();
	img->load(input);
	double start = Data::get_time();
	cout << &img << endl;
	translation(img,atoi(pArgParam[0].c_str()),atoi(pArgParam[1].c_str()), new Color(0,0,0,255));
	if (Data::CHRONO)	cout << description<<" effectue en " << 1000*(Data::get_time() - start)<<" ms"<<endl;
	img->save(output);
}
Пример #2
0
void Difference::run(vector<string> pArgParam,string input, string output){
	unused(pArgParam);
	ImagePNG* img = new ImagePNG();
	img->load(input);
	ImagePNG* img2 = new ImagePNG();
	img2->load(pArgParam[0]);
	double start = Data::get_time();
	difference(img, img2);
	if (Data::CHRONO)	cout << description<<" effectue en " << 1000*(Data::get_time() - start)<<" ms"<<endl;
	img->save(output);
}
Пример #3
0
int main(int argc,char** argv) {

  (void) argc;
   string nom_image;
   nom_image=argv[1];//nom de l'image (adresse)
   string numero,numero2;
   numero=argv[2];//premiere ou seconde image a comparer (pour sauvegarder le ratio)
   numero2=argv[3];//le type de filtre voulu
   ImagePNG img;
   img.load(nom_image);

  float largeur;
  float hauteur;

  largeur=max_largeur(img)-min_largeur(img);
  hauteur=max_hauteur(img)-min_hauteur(img);
  unsigned minl,minh,maxl,maxh;
  minl=min_largeur(img);
  minh=min_hauteur(img);
  maxl=max_largeur(img);
  maxh=max_hauteur(img);


  //niveau_de_gris(img);
  binarise(img,numero);
  img.load("binarise"+numero+".png");


  if (numero2=="1")
  {
    filtre_median(img,numero);
    img.load("filtre_median"+numero+".png");
  }
  if (numero2=="2")
  {
    filtre(img,numero);
    img.load("filtre"+numero+".png");
  }


  squelette(img,numero);
  img.load("squelette"+numero+".png");

  bifurcation(img,numero);
  img.load("bifurcation"+numero+".png");

  verif_minutie(img,numero);
  img.load("bifurcation2"+numero+".png");

  ecriture(img,largeur,hauteur,minh,minl,maxl,maxh,numero);//2=bb
  return 0;
}