begin process at 2010 02 10 00:10:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

mercredi 20 mars 2002 à 13:30:46 | HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

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ébutant en programmation.
J'utilise en priorité C++ Builder 3.0.
Ne me laissez pas tomber c'est pour mon projet de fin d'étude.
Merci
vendredi 12 avril 2002 à 14:51:53 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

Corwyn

Salut !

Je fais remonter le topic car cela m'intéresserait beaucoup également. Pour l'instant, je ne sais charger que les images au format PGM ce qui convient bien sous UNIX. Mais sous Windows, le format de référence est le BMP ou le JPEG... Il me faudrait une fonction (ou classe) me permettant de charger une image JPEG ou BMP dans un buffer...

Merci aux connaisseurs de répondre...
samedi 27 mars 2004 à 17:18:41 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

Eur

Salut !

Manifestement je ne suis pas le seul dans ce cas !
Je dois réaliser une détection d'intrus depuis une caméra Axis 2100 ( caméra ip) qui fournit des images en jpeg uniquement ( à moins que je me trompe ). Mes profs l'ont acheté sans lire la notice technique...

Le problème est que je dois travaillé pixel par pixel ( imposé par le sujet ) et que je dois ensuite afficher l'image dans un programmes sous C++ Builder 3.0 .

Je suis donc à la recherche d'un composant permettant d'aller de JPEG à bmp, voir TIF ( c pas genant ) et si il peut faire aussi dans l'autre sens c pas plus mal non plus :)

Merci d'avance
vendredi 29 avril 2005 à 15:28:44 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

chasse18

j'ai ce qu'il vous faut sa marche car j'ai le même projet et la détéction marche pour l'instant mais doit être optimisé voici le code mais si vous l'optimisé faite moi signe.

#include "clDetectionMouv.h"

//*****************************************************************************
DetectionMouv::DetectionMouv(int i_seuil, TJPEGImage *_p_image, AnsiString _s_nomCadre)

{
   seuilDetect = i_seuil;
   p_image = _p_image;
   s_nomCadre = _s_nomCadre;

   Graphics::TBitmap * jpgCompar = new Graphics::TBitmap;     

   DetectionMouvement (p_image, s_nomCadre);
}
//*****************************************************************************
void DetectionMouv::ActiverDetect ( bool Autorisation)
{
    b_detect = Autorisation;
}
//*****************************************************************************
void DetectionMouv::DetectionMouvement (TJPEGImage *_p_image, AnsiString s_nomCadre)     //avt utils::SharedPtr<Image>& _p_media
{
      Graphics::TBitmap * bmp2 = new Graphics::TBitmap;
      bmp2->Assign(_p_image);
      bmp2->PixelFormat = pf8bit; //avt pf4bit
      int cpt = 0;
      int *ptr1;
      int *ptr2;

      Graphics::TBitmap * jpgCompar = new Graphics::TBitmap;
        jpgCompar->LoadFromFile("C:\\"+s_nomCadre+".bmp");

        for ( int i_y = 0; i_y <= bmp2->Height-1; ++i_y)
          {
            ptr1 = (int *)jpgCompar->ScanLine[i_y];
            ptr2 = (int *)bmp2->ScanLine[i_y];

            for ( int i_x = 0; i_x <= bmp2->Width-1; i_x++) 
            {
               if (i_x <= 592)               //DIM image 640 X 480 pb avec ma camera planet                                                             //pas avec axis
                  if( ptr1[i_x] != ptr2[i_x])
                     ++cpt;
            }
          }

        if(cpt >= seuilDetect)
        {
   //         Encodage( 10 );
            AnsiString test = "Mouvement à l'écran de la ";
            test += s_nomCadre ;
            ShowMessage("je t'ai vue");
            jpgCompar->SaveToFile("C:\\Tvue.bmp");
        }

        ChangerImage(bmp2);

      delete bmp2;
      delete jpgCompar;

}

//*****************************************************************************
void DetectionMouv::Encodage(int TempsEncodage)  // Temps en seconde
{
      for(int i =0 ; i>TempsEncodage ; ++i)
      {}
}

//*****************************************************************************
void DetectionMouv::ChangerImage(Graphics::TBitmap * NewBmp)
{
     jpgCompar = NewBmp;
     jpgCompar->SaveToFile("C:\\Camera 1.bmp");      //"C:\\"+s_nomCadre+".bmp"     // stockage de du nom du cadre

}

//*****************************************************************************
bool DetectionMouv::IsActivDetect()
{
   return b_detect;
}

//*****************************************************************************
Graphics::TBitmap* DetectionMouv::TransformJpegBmp ( TJPEGImage *_p_image)
{
   Graphics::TBitmap * bmp2 = new Graphics::TBitmap;

   bmp2->Assign(_p_image);
   bmp2->PixelFormat = pf4bit;

   return bmp2;
}


il me reste a conserver la première image en memoire et éviter ainsi les accés disque.
Amicalement Chasse18
lundi 2 mai 2005 à 17:20:52 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

Eur

Merci c'est bien gentils. Cependant le projet a été terminé l'an dernier. Pour ceux que ça intéresse, nos profs nous fait faire la chose suivante ( un peu idiote, voire bcp mais bon, on a pas pu discuter avec eux ) : installer un composant graphique qui permet de manipuler les images sous Builder 3.0, intègré dans une fenêtre cachée, qui convertissait sauvegardait les images , appellée de n'importe quel type de fichier en BMP. Biensûr c'est lourd, pas du tout optimisé, et ça multiplie les accès disques car les fonctions de ce composant ne fonctionnait que sur le disque.

Cependant le jury de l'examen a fait une remarque qui te permettrait de rendre plus facile l'optimisation de ton programme : créer un disque dur virtuel, sur lequel tu enregistres tes images.

Pour ce qui est de la solution de garder la première image en mémoire, je pense que c'est pas une super idée, car mettons que le programme fonctionne 8h d'affilée, dans la journée, t'as des fluctuations de lumière assez grandes, qui sont encore plus visibles lorsque tu travailles en Jpg. Nous avions optés pour une comparaison d'images prises l'une à la suite de l'autre, avec un seuil de tolérance pour les fluctuations, et un seuil de tolérance quand à la masse de pixels différents.

Amicalement
mardi 3 mai 2005 à 09:50:38 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

chasse18

si tu regarde le code tu veras que pour resterplus simple il te suffit de récupérer la première image sans la traiter puis tu récupère la seconde que tu compare et tu la remplace avec la première.
le probleme de ce code (qui marche) c'est qu'au bout 20 images seconde cala ralentit l'application car elle n'a pas le temps de parcourrir la matrice de pixel, que la deuxième image est déjà là.
sinon j'ai fait le test de lancer l'encodage en mpeg simultanement la mémoire rest constant le cpu fait des aller retour entre 100 et 55% mais acceptable.
si vous avez des idéés pour améliorer je suis preneur.
Chasse18
mardi 3 mai 2005 à 09:54:01 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

chasse18

j'ai oublié le disque virtuel je sai créer un disque virtuel et j'ai essayer cependant étant donner la quantité d'image que me fournissent les caméras ip et la quantité du disque virtuel (16 Mo).
sa explose

chasse18
mardi 3 mai 2005 à 19:35:25 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

Eur

Merci pour cette précision. Nous n'avons pas utilisés le composant TBitmap et ses fonctions. Nos profs nous l'ont interdit, en prétextant que le codage devait pouvoir être porté sous n'importe qu'elle plateforme, à part pour le chargement de l'image à l'écran. Pour l'analyse on a donc utilisé deux pointeurs, dans lesquels on stockait deux images, une première, puis la deuxième qui suivait. La comparaison se faisait sur ces deux images, puis prenait l'adresse de la deuxième et on prenait le premier pointeur que l'on faisait pointer vers cette adresse, ce qui évitait de passer par une phase de copie et donnais un gain en temps non négligeable. Pour optimiser, on a étudier une solution que les profs nous ont refusés, mais qui reste très utilisées quand même dans l'industrie. Au lieu de comparer chaque pixel de chaque image, tu peux prendre un pixel tout les X pixels. Ainsi, tu peux faire une sorte de grille plutôt qu'un rectangle plein, si tu vois ce que je veux dire.

Une autre solution pour optimiser serait de faire le md5 d'une ligne, et de le comparer au md5 de la même ligne sur la même image. Ca te permets de limiter le nombre de comparaison également.

Par exemple pour une image ça t'en ferai 480 au lieu de 307200 (dans le cas ou tu compares chaque pixel).

mercredi 4 mai 2005 à 09:58:57 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

chasse18

je vai regarder ton systeme de md5 en ce qui concerne les ptr, je t'explique mon pb si tu veus j'ai une classe clEcranVCl qui est en relation avec la clJpegVcl dans cette classe je manipule des jpeg alors qu'au dessus de cette classe et dans toutes les autres ( 10 ) je manipule mes images avec des pointeurs intelligent ce qui permet de ne pas à avoir à traiter de la destruction de ceux-ci, mon pb est que je voulais créer mon objet DetectionMouv dans clEcranVcl et passer le ptr à clJpegVcl qui appelerai les méthodes utile à la detection du mouvement. Mais je ne sai pas pourquoi il me créé un deuxième objet DetectionMouv alors que je lui est passé par référence et donc sa plante, car je ne conserver l'image en mémoire.
j'ai donc opté pour la création dans clJpegVcl et la sauvegarde sur le disque, mais c'est très bourin et sa me plais oas du tout.
Chasse18
mercredi 11 janvier 2006 à 20:28:06 | Re : HELP ME !!! Passer une image JPEG en BMP. Projet de fin d'année

bicolitcho

salut à tous !!!
Alors moi aussi je fais un projet avec une camera Ip axis 2100  C++ et avec C++ builder 5,mon but est d'inclure l'image de la camera Ip en flux continue dans mon IHM .Si vous avez encore les sources de vos ancien projet ou si vous pouvez m'aidez se serais très bien!!!
Je vous remercie tous !!please c'est pour mon projet de fin d'année!!


1 2 3

Cette discussion est classée dans : fin, projet, image, bmp, jpeg


Répondre à ce message

Sujets en rapport avec ce message

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 C++, Windows: Affichage image (BMP,GIF,JPEG) dans fenetre [ par yves_r ] Dev-C++, Windows: Je cherche à afficher une (ou plusieurs) image(s) (bmp, gif, jpeg) dans une fenêtre. Quelqu'un a-t-il une methode simple ?NB: j'ut jpeg dans ressource [ par Arnaud16022 ] bonjour... je sais comment chager un .jpg, je sais comment mettre un .bmp dans un .exe, je sais ouvrir ce .bmp dans la ressource au runtime, mais ca n j'ai un projet en c ( traitement d'image) et j'ai besoin d'un code pour tracer un cercle, une droite, une ellipse.quelqu'un pourait m'aider. MERCI [ par agno ] [code C++] Lire une image JPEG en hexa [ par kilowat ] Bonjour, Je suis confronté à un problème dont je ne trouve pas la solution depuis quelques temps, voila je voudrais ouvrir une image jpeg, la lire bit Convertion d'image jpg <-> bmp [ par shadow52 ] Bonjour, je cherche une methode pour convertir une image jpg en bmp; jai trouver la commande DIBNeeded mais je n'ai pas tres bien compris comment ell TF d'une image bmp en c++ ou c# [ par lecume ] Salut, Je cherche à effectuer, sous visual C++ ou visual.net, une transformée de Fourier sur une image bmp. Je débute et je ne sais comment démarrer. Projet BTS a finir - traitement image [ par Hercule2000 ] Bonjour je suis un etudiant en BTS informatique industrielle et nous avons un projet a réaliser avant fin mai.Nous avons un bras manipulateur sur lequ ouvrir une image (bmp ou jpg) puis la transformer en nuances de gris avec visual c++ 6 [ par tlemcenvisit ] SalutJe voudrai programmer en utilisant le visual c++ un programme permettant d'ouvrir une image de type bmp ou jpg puis de la transformer en nuances Convertion d'un bitmap 8 bits en un bitmal 24 bits [ par SauCisS ] Bonjour, J'ai parcouru ce forum pour chercher ma réponse, mais sans succès. Alors voici mon problème : Comment à partir d'une image BMP 8 bits niv


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales