Décodage des fichiers RAW

Pour ne pas devoir réinventer l'eau chaude, l'utilisation du programe DCRAW dcraw.c, logiciel de David Coffin, permet de fabriquer une image TIFF à partir d'un fichier issu d'un appareil reflex numérique.

Le principe est d'appeler le programme avec les options -D pour avoir les données brutes du capteur de l'appareil numérique. L'option -T donne un format tiff et -4 indique que la résolution demandée est 16 buts au lieu des 8.

Le code source étant disponible, nous pouvons l'inclure dans notre programme. Le seul inconvéniant est que le fichier drcaw.c contient une fonction main qu'il nous faudra renommé pour permettre une bonne compilation.

int convertRAW()
{
  int Sargc;
  char* Sargv[5];
  // Simulation d'un appel à DCRAW
  Sargv[0]="DCRAW";
  Sargv[1]="-D";
  Sargv[2]="-T";
  Sargv[3]="-4";
  Sargv[4]=malloc(sizeof(char)*512);
 
  int i;
  for(i=0;i<LEN_REPERTOIRES;i++)
    {
 
      // Lecture d'un repertoire 
 
      struct dirent *lecture;
      DIR *rep;
      rep = opendir(REPERTOIRES[i]);
 
      /* lire les images */
      while ((lecture = readdir(rep))) {
	/* On prend que les fichiers .CR2 */
	if  (strlen(lecture->d_name) > 4 )
 
	  {
	    char *p = lecture->d_name;
	    p = p + strlen(lecture->d_name)-4;
	    if ((strcmp(p, ".CR2")==0)||
		(strcmp(p, ".CRW")==0))
	      {
		char nRAW[512];
		sprintf(nRAW,"%s//%s",REPERTOIRES[i],lecture->d_name);
		printf("RAW en Tiff : %s\n", nRAW);
		fflush(stdout);
 
		strcpy(Sargv[4],nRAW);
		//  ./dcraw.exe -D -T -4 lights/IMG_1895.CR2
		main2(5,Sargv);
 
 
	      }
	  }
      }
      closedir(rep);
 
    }

L'ensemble des répertoires (lights, darks,offsets et flats) est balayé et dcraw est appliqué pour les fichiers CR2 et CRW.

 
apa/theorie/fichiers_raw.txt · Dernière modification: 2007/07/31 14:33 par davidl
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki