Progamme en C pour fusionner deux images - C - Programmation
Marsh Posté le 22-02-2011 à 11:49:39
Regarde du côté d'ImageMagick, tu devrais trouver ce que tu cherches je pense.
Marsh Posté le 22-02-2011 à 12:18:21
Je veut bien mais je doit faire un programme sans librairie ou autre puisque je ne peut telecharger ! 
 
merci qu'en meme 
Marsh Posté le 22-02-2011 à 16:03:47
Bah t'as plus qu'à le faire toi-même...le plus difficile c'est de lire les différents formats de fichier que t'as en entrée, si t'as pas de libs qui le font à ta disposition... 
 
Fusionner des images ça a rien de bien compliqué.
Marsh Posté le 23-02-2011 à 08:38:14
Ben enfaite voila mon programme mais il y a la librairie sdl mais peut pas l'avoir alors comment faire pour fusionner ces images sans ce sdl  
 
 
#include <stdlib.h> 
#include <SDL.h> 
 
 
Uint32 GetPixel(SDL_Surface *screen, int x, int y) 
{ 
    return *(Uint32 *) ((Uint8 *)screen->pixels + y * screen->pitch + x * screen->format->BytesPerPixel); 
} 
 
void SetPixel(SDL_Surface *screen, int x, int y, Uint32 pixel) 
{ 
    *(Uint32 *) ((Uint8 *)screen->pixels + y * screen->pitch + x * screen->format->BytesPerPixel) = pixel; 
} 
 
int main ( int argc, char** argv ) 
{ 
    SDL_Surface *layer1 = NULL, *layer2 = NULL, *result; 
    unsigned i, j; 
    Uint32 pix1, pix2; 
    Uint8 r1, r2, g1, g2, b1, b2; 
 
      initialise SDL video */ 
    if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) 
    { 
        fprintf( stderr, "Unable to init SDL: %s\n", SDL_GetError() ); 
        return 1; 
    } 
 
    layer1 = SDL_LoadBMP("layer1.bmp" );  // CT 
    layer2 = SDL_LoadBMP("layer2.bmp" );  // PET 
 
    if (layer1 && layer2) 
    { 
        result = SDL_CreateRGBSurface(SDL_SWSURFACE, layer1->w, layer1->h, 32, 0, 0, 0, 0); 
 
        for  (i=0; i<layer1->w; i++) 
            for (j=0; j<layer1->h; j++) 
            { 
                pix1 = GetPixel(layer1, i, j); 
                pix2 = GetPixel(layer2, i, j); 
 
                SDL_GetRGB(pix1, layer1->format, &r1, &g1, &b1); 
                SDL_GetRGB(pix2, layer2->format, &r2, &g2, &b2); 
 
                SetPixel(result, i, j, SDL_MapRGB( result->format, (r1*2+r2)/3, (g1+g2)/2, (b1+b2*2)/3 )); 
            } 
 
        SDL_SaveBMP(result, "result.bmp" ); 
    } 
 
    SDL_Quit(); 
    return 0; 
}
Marsh Posté le 23-02-2011 à 08:44:31
La remplacer par un bout de code que tu écriras toi-même. Lire et écrire du format bitmap c'est pas bien sorcier si mes souvenirs sont bons.
Marsh Posté le 22-02-2011 à 10:41:06
Bonjour a tous
Voila j'ai le début d'un programme en langage C mais il possede la bibliothéque sdl ors sur le stage ou je me trouve je ne peut rien telecharger !
Donc le seul logiciel que je peut utiliser et devc++
Auriez vous un programme a me proposer pour la fusion d'image voila ce que j'aimerais réaliser a termes ce sont des images en format dicom :
Voila c'est exactement ce que je doit faire sous devc++ en C
l'image de droite qui rassemble l'image "CT" et l'image "PET" !
http://www.google.fr/imgres?imgurl=htt [...] 1&um=1&itbs=1
Bonne journée