Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : AVI to BMP to AVI [ Archives / Au secours ] (phipedro)

mardi 10 mai 2005 à 09:36:36 | AVI to BMP to AVI

phipedro

Voilà je suis étudiant en électronique(école d'ingé) et je suis en stage en Chine. Je dois créer une application qui permettrai de compter des personnes voir de les reconnaitre à l'aide d'une caméra. La carte est faite elle travaille avec un DSP de TI série 6000.
Il faut maintenant que j'écrive le code en C++ sous VC++ 6. Dans un premier temps, je voudrais partir d'une video AVI la transformer en image BMP puis transformer les images BMP en AVI mais pour l'instant, je n'arrive pas à retransformer les bmp pour avoir le même fichier qu'avant et lorsque je copie les BMP sur mon disque, elles sont décallés et elles ont un pb de couleur
aidez moi svp et soyez indulgent d'habitude je programme en C sous UNIX........

merci   

mercredi 11 mai 2005 à 04:48:45 | Re : AVI to BMP to AVI

phipedro

Voici le code que les 14 premières streams et je ne sais pas pourquoimais après ilne veut pas faire le "AVICreateStream":
int AVIExtraction(char* Name)

 AVIFileInit();/*initialisation*/
 PAVIFILE avi;
 
 /*openning and test of the avi file*/
 int r=AVIFileOpen(&avi, Name, OF_READ, NULL);
 if(r!=AVIERR_OK)
 {
  if(avi!=NULL)
   AVIFileRelease(avi);
  puts("error in openning avi file");
  return -1;
 }

 /*copy of the information*/
 AVIFILEINFO info;
 AVIFileInfo(avi, &info, sizeof(AVIFILEINFO));
 
 /*getting and test of the stream for a video*/
 PAVISTREAM avistream;
 r=AVIFileGetStream(avi, &avistream, streamtypeVIDEO, 0);
 if(r!=AVIERR_OK)
 {
  if(avistream!=NULL)
   AVIStreamRelease(avistream);
  AVIFileExit();
  puts("error in getting the stream of the avi file");
  return -1;
 }

 /*creation of bitmap pictures*/
 int NFrames=AVIStreamLength(avistream);/*number of frame*/
 int FirstFrame=AVIStreamStart(avistream);/*First Frame*/

 BITMAPINFOHEADER BInfo;
 ZeroMemory(&BInfo, sizeof(BITMAPINFOHEADER));/*restoring*/

 BInfo.biBitCount = 12; /*24 bit per pixel*/
 BInfo.biCompression = 0; /*BI_RGB;*/
 BInfo.biHeight = info.dwHeight;
 BInfo.biWidth = info.dwLength;
 BInfo.biPlanes = 1;
 BInfo.biSize = sizeof(BInfo);

 /*prepare to decopress*/
 PGETFRAME frame;
    frame=AVIStreamGetFrameOpen(avistream, NULL);
 if(frame==NULL)
 {
  puts("error in the preparation");
  return -1;
 }
 
 
 PAVIFILE newavi;
 /*openning and test of the avi file*/
 r=AVIFileOpen(&newavi, "test.avi",OF_WRITE | OF_CREATE, NULL);
 if(r!=0)
 {
  if(newavi!=NULL)
   AVIFileRelease(newavi);
  puts("error in openning avi file2");
  return -1;
 }
 
 
 /*get the frames*/
 int i,j=0;
    for (i=FirstFrame; i<NFrames; i++)
    {
        j= i-FirstFrame;
   puts("hello1");
        int* pDIB =(int*) AVIStreamGetFrame(frame, j);
        r=AVICreation(BInfo,pDIB, newavi);puts("hello2"); 
  //BitmapCreation(pDIB, j);
  if(r==FALSE)
  {
   puts("error in the avi movie creation loop");
   printf("number of created stream : %d\n",j);
   return -1;
  } 
 }
 
    AVIStreamGetFrameClose(frame);

    /*close the stream */

    if (avistream!=NULL)
        AVIStreamRelease(avistream);

 AVIFileExit();
 puts(" the extraction is finshed");
    return NFrames;
}

 

BOOL AVICreation(BITMAPINFOHEADER bih, int* pDIB,PAVIFILE newavi)
{

 int r;
 /*copy of the information*/
 AVISTREAMINFO streaminfo;
 ZeroMemory(&streaminfo, sizeof(AVISTREAMINFO));/*restoring*/

 streaminfo.fccType = streamtypeVIDEO;
    streaminfo.fccHandler =0;//mmioFOURCC('M','P','G','4');
    streaminfo.dwScale = 1;
    streaminfo.dwRate =30;
    streaminfo.dwSuggestedBufferSize =0;
    streaminfo.dwQuality =1000;
 streaminfo.rcFrame.right =bih.biWidth;
 streaminfo.rcFrame.bottom =bih.biHeight;

 /*creation of the new stream*/
 PAVISTREAM avistream;
 r=AVIFileCreateStream(newavi,&avistream, &streaminfo);
 if (r!=0)
 {
           puts("error in the creation of the new stream");
           AVIFileRelease (newavi);
           AVIFileExit ();
  return FALSE;
 }
 

 /*format of the stream*/
 AVIStreamSetFormat(avistream, 0, &bih, sizeof(bih));
 if (r!=0)
    {
  puts("error in the setting of the stream format");
        AVIStreamClose(avistream);
  AVIFileRelease (newavi);
        AVIFileExit ();
  return FALSE;
 }

 /*stream writing */
 AVIStreamWrite(avistream,0,30,pDIB,bih.biSizeImage,AVIIF_KEYFRAME,NULL,NULL);
 puts("hello");
 AVIFileRelease (newavi);
  
 return TRUE;
}     



MERCI de m'aider je me suis inspirer du WRITEAVI de MSDN et de différents code trouvés ici où sur d'autres sites.




Cette discussion est classé dans : transformer, to, bmp, avi


Répondre à ce message

Sujets en rapport avec ce message

AVI to BMP ?? [ par snounours ] je cherche a convertir un fichier avi en une série de bmp.j'ai trouver comment faire l'inverse mais imposible de trouver le code en VC++ pour faire ca AVI to BMP to AVI [ par phipedro ] bon j'ai déjà posté ce message dans la catégorie "graphique" car il touche aussi bien au graphisme(BMP) qu'au multimédia (AVI). Je sais que ce sujet p Peut on transformer un flux vidéo en BMP [ par Diabolus ] SalutJe voudrais savoir si on peut transformer un flux vidéo en images BMP.La vidéo provient d'une carte d'acquisition.Merci serie d'image bmp à partir de vidéo AVI [ par little_bius ] Bonjour,Je voudrai savoir s'il est possible de transformer une vidéo au format AVI en une série d'image bmp.Par exemple si on a une vidéo de 30 second .bmp en .avi sur linux [ par lingus ] voila j ai un pb > je dois passer un ta d images .bmp pour en faire une petite video.le pb c est ke je suis sur linux et ke je ne connais pas de soft Copier StreamAudio d'un AVI to AVI [ par Shadiest ] Ayant directement accés aux streams d'un fichier AVI, j'aimerai copier l'audio dans un autre AVI, le problème a déjà été rencontré ici mais n'a pas Ecrire du WAV dans un AVI avec VFW : AVI to BMP+WAV to AVI [ par vassily8 ] bonjour,je souhaite faire un prog qui lit un fichier AVI, traite les images (filtres...) et me recrée un nouveau fichier AVI avec ces images.Avec les Transformer une image JPEG en BMP [ par FLOX ] Bonjour à tous,Auriez vous un source me permettant de transformer une image JpEG en BMP. Tout cela d'une manière simple et compréhensive pour un début DC to bmp [ par sebseb42 ] salut a tous,voila, j'utilise la fonction BitBlt pour faire une capture d'ecran, ca c'est cool, ca fonctionne, j'ai la capture dans un DC, mnt ce que BMP To JPeg [ par bebel6 ] Bonjour tout le monde,je viens de faire une recherche sur le forum pour voir si kelkun avait trouver son bonheur afin de transformer une image BMP en


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,30 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.