IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Algorithme pour rotation image en C


Sujet :

Traitement d'images

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Algorithme pour rotation image en C
    Bonjours à tous,


    J'ai un souci, je travaille actuellement sur un projet tutoré dans mon IUT et j'ai à charge de programmer une fonction pour effectuer la rotation d'une image.

    j'ai à disposition les structures et les fonctions suivantes


    typedef struct {
    int n_composantes;
    int * prof_composantes;
    int largeur;
    int hauteur;
    TypeComposante * type_composantes;
    void * donnees;
    int taille_pixel;
    } Image;

    typedef unsigned long int * Pixel;

    Pixel pixel_image_get(Image * image,int pos_x,int pos_y);

    void pixel_image_set(Image * image,int pos_x,int pos_y,Pixel pixel);

    Voilà, donc je chercher précisement à faire une fonction qui fasse la rotation de l'image en fonction d'un angle (en degrés) donné .

    J'ai passé des heures sur google mais je n'ai rien trouvé.
    Si quelqu'un à une idée , une solution, ou un algo, je suis preneur.

  2. #2
    Membre éclairé Avatar de crocodilex
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 697
    Points : 858
    Points
    858
    Par défaut
    Ce n'est pas une question sur le langage C ça ?

    Poses la question dans le forum algo :
    http://www.developpez.net/forums/forumdisplay.php?f=60

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    1 - Choisir un centre de rotation O ( par exemple le centre du rectangle où se situe l'image source). Ce rectangle a une diagonale de longueur d
    2 - Définir une image cible comme un carré de côté d et de centre O. Suivant le valeur de la rotation il pourrait être plus petit et réduit à un rectangle.
    3 - Scanner les pixels de l'image cible. pour chacun d'entre eux trouver l'original via la matrice de rotation -T. l'original n'étant pas à priori sur un pixel, utiliser le pixel le plus proche, ou une pondération, ou celui présentant le plus grand gradient d'intensité ou splines cubiques ou ...
    Par ailleurs, il se peut que l'original soit hors image. définir alors une couleur de fond par défaut.
    4 - Reporter la valeur ainsi obtenue sur l'image cible
    5 – Sauver le résultat en BMP, JPG, …

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut

    Il y a eu une discussion récemment là-dessus, pas forcément en C, mais sur l'algorithme, donc si c'est ici, c'est que c'est ça qui manque

    Après recherche, le sujet était même pas à 10 sujets, donc c'est vraiment un gros

    http://www.developpez.net/forums/sho...d.php?t=132171

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ah ok je n'avais pas vu, veuillez m'excuser.

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai juste une derniere question
    pour chacun d'entre eux trouver l'original via la matrice de rotation -T
    je n'ai pas compris , qu'est -ce que la matrice de rotation -T?

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    si vous avez une rotation d'angle T dont la matrice associée est (cos(T), sin(T), -sin(T), cos(t)), -T est la rotation d'angle -T dont la matrice est(cos(T), -sin(T), sin(T), cos(T)).

Discussions similaires

  1. Algorithme de calcul d'albédo de surface pour 2 images
    Par RomGar dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 06/06/2008, 14h15
  2. algorithme LBG pour les images
    Par soufiane121 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 12/04/2008, 21h40
  3. format d'images pour textures et algorithme pour meshes
    Par franc82 dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 31/10/2006, 19h12
  4. [Image] Algorithme pour déterminer une forme continue
    Par wizzmasta dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 25/04/2006, 16h56
  5. Définir un angle de rotation pour une image
    Par mateo.14 dans le forum C++
    Réponses: 5
    Dernier message: 25/03/2005, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo