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