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 :

Sélection de parties d'une image


Sujet :

Traitement d'images

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut Sélection de parties d'une image
    Bonsoir,

    J'ai une image rectangulaire de dimension connue (ex 800*600).
    Dans cette image, j'ai une ou plusieurs partie(s) de taille quelconque.

    Ce que je voudrais faire : récuperer toute(s) la/les partie(s) dans une sélection de 92*112. Je peux redimensionner les parties (ex : pour une partie qui fait 200*320 je peux redimensionner cette partie, puis l'encadrer par une sélection de 92*112). La sélection devra contenir toute la partie avec un minimum d'image autour.

    La chose est simple à première vue, mais j'ai du mal à trouver un algorithme pour ce problème !

    Merci de votre aide !

  2. #2
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Bjr,
    essayer ça :

    Tu as une source et une cible.
    zomm = taille cible / taille source
    garder le plus contraignant (le plus petit)
    éventuellement tripoter le zoom. (tu peux vouloir faire que des rappetissements, et jamais d'agrandissement. dans ce cas, zoom = min(1,zoom)

    calculer cc le centre de la cible et cs le centre de la source
    Pour chaque point de ta fenêtre calculer ses distances d (en ligne et colonne) à cs.
    Dans la cible, ce point s'affiche à la distance d*zoom de cc.

    OL

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Je ne comprends pas trop ce que tu veux dire !!

  4. #4
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    Tu dois faire une translation de vecteur centre de ta zone à extraire -> centre de ta fenêtre destination, suivi d'une homothétie du facteur nécessaire et suffisant pour faire rentrer ta source dans ta cible.

    la bonne méthode c'est :

    -translation depuis le centre de ta source vers l'origine des axes -> tu soustrait les coordonnées u centre de ta source

    - homothétie (maintenant que tu es centré à l'origine) donc tu multiplie tes coordionnées par le facteur zoom que tu as calculé

    - translation vers la fenêtre destination = tu ajoutes les coordonnées du centre de ta fenêtre destination


    OL

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Désolé j'ai encore du mal. Prenons un exemple :

    J'ai une image de 800*600 et on définit l'origine en haut à gauche. J'ai une partie d'image avec le coin gauche de coordonnées x,y. Cette partie a une largeur l et une hauteur h.

    Je veux obtenir une image de 92*112 contenant toute la sélection avec le minimum d'image autour. Comment peut-on obtenir cette image avec l'algo cité au-dessus ?

    Merci !

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    personne ne peut m'aider ?

    merci.

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    désolé mais je ne comprend pas très clairement ton problème.

    Les problèmes de sélections et de redimensionnement furent amplement traités sur le forum...

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par ToTo13
    Bonjour,

    désolé mais je ne comprend pas très clairement ton problème.

    Les problèmes de sélections et de redimensionnement furent amplement traités sur le forum...

    J'ai une image de 800*600 (par exemple), l'origine étant définie au coin en haut à gauche. Dans cette image, j'ai une sélection rectangulaire de taille quelconque : x,y étant les coordonnées du coin en haut à gauche de la sélection et l, h sa largeur et sa hauteur.

    Le but du problème est d'obtenir la sélection dans une taille de 92*112 sans déformer la sélection. Pour cela, il faudra prendre de l'image autour de la sélection et de redimensionner. En fait, le but est d'avoir un rapport de la sélection l/h = 92/112 puis de redimensionner (ça je sais faire).


    Tu disais que le problème avait été amplement traité sur ce forum : désolé je n'ai pas trouvé.

    Merci de votre aide !!

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Bonsoir,

    Je suis très embêté car je n'ai toujours pas réussi à régler ce problème, si quelqu'un pouvait m'aider !!

    Merci.

  10. #10
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    salut,
    je connais la focntion suivante qui permet de redimonsionner une image peut être ça peut t'aider.


    BufferedImage image;
    Image imageRetaille;
    imageRetaille=image.getScaledInstance(500,500,Image.SCALE_AREA_AVERAGING);
    tu peu changer 500, 500 par les dimensions que tu veux

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par mehdiing
    salut,
    je connais la focntion suivante qui permet de redimonsionner une image peut être ça peut t'aider.


    BufferedImage image;
    Image imageRetaille;
    imageRetaille=image.getScaledInstance(500,500,Image.SCALE_AREA_AVERAGING);
    tu peu changer 500, 500 par les dimensions que tu veux
    Ce que je cherche, c'est un algorithme pour résoudre ce problème. Pour le redimensionnement, j'ai ce qu'il faut... Merci quand même !

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par bert_
    Désolé j'ai encore du mal. Prenons un exemple :

    J'ai une image de 800*600 et on définit l'origine en haut à gauche. J'ai une partie d'image avec le coin gauche de coordonnées x,y. Cette partie a une largeur l et une hauteur h.

    Je veux obtenir une image de 92*112 contenant toute la sélection avec le minimum d'image autour. Comment peut-on obtenir cette image avec l'algo cité au-dessus ?

    Merci !
    D'apres ce que j'ai compris, t'a une image 800*600 et tu veu par exemple selectionner une partie de cette image et que t'a selection ai apres une taille 92*112. Est-ce bien ca que tu veu faire?

  13. #13
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par stranger
    D'apres ce que j'ai compris, t'a une image 800*600 et tu veu par exemple selectionner une partie de cette image et que t'a selection ai apres une taille 92*112. Est-ce bien ca que tu veu faire?
    Oui tout à fait !

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par bert_
    Oui tout à fait !
    Bein une idée serai de récuperer la zone de l'image que t'a sélectionner (avec une méthode que t'aura créer par toi méme) et comme t'a dit que t'a déja tout ce qu'il te faut pour redimensionner. Donc t'aura plus qu'a redimensionner la zone en question avec la dimension que t'aura choisi.
    Juste une question tu programme tout ca avec quel langage?

  15. #15
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par stranger
    Bein une idée serai de récuperer la zone de l'image que t'a sélectionner (avec une méthode que t'aura créer par toi méme) et comme t'a dit que t'a déja tout ce qu'il te faut pour redimensionner. Donc t'aura plus qu'a redimensionner la zone en question avec la dimension que t'aura choisi.
    Juste une question tu programme tout ca avec quel langage?
    ça ne m'aide pas...

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par bert_
    ça ne m'aide pas...
    je suis desolé mais je n'ai pas compris purquoi ca ne t'aide pa? qu'est ce que tu veux faire de plus que j'ai di? explique nous bien ton probleme si tu veu que quelqu'un te donne un coup de main

  17. #17
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2007
    Messages : 95
    Points : 42
    Points
    42
    Par défaut
    Je redis :

    J'ai une image de 800*600 (par exemple), l'origine étant définie au coin en haut à gauche. Dans cette image, j'ai une sélection rectangulaire de taille quelconque : x,y étant les coordonnées du coin en haut à gauche de la sélection et l, h sa largeur et sa hauteur.

    Le but du problème est d'obtenir la sélection dans une taille de 92*112 sans déformer la sélection. Pour cela, il faudra prendre de l'image autour de la sélection et de redimensionner. En fait, le but est d'avoir un rapport de la sélection l/h = 92/112 puis de redimensionner (ça je sais faire).
    Par exemple, j'ai une partie de l'image dont le coin en haut à gauche à pour coordonnées (300, 500) et a pour largeur et hauteur : (300x100). Je veux obtenir une sélection de 92x112 sans déformer la sélection d'origine !


    Merci.

  18. #18
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par bert_
    Par exemple, j'ai une partie de l'image dont le coin en haut à gauche à pour coordonnées (300, 500) et a pour largeur et hauteur : (300x100). Je veux obtenir une sélection de 92x112 sans déformer la sélection d'origine !
    1.Selection x=300 y=500 w=300 h=100

    2. Ratio Selection = w/h = 3.000

    3. Ratio Désiré = 92/112 = 0.821


    Choix n°1:

    A. Retailler Selection sur w ==> bande noire sur h (cinemascope)

    B. Facteur de Retaillement: w_Selection / w_Désiré = 300 / 92 = 3.260

    C. Retailler selection: nouveau_w = w/3. 260 = 92 et nouveau_h = h / 3.260 = 30

    D. Hauteur de la bande noire = h_Désiré - nouveau_h = 112 - 30 = 82 pixels

    E. Surface de la bande noire = Hauteur de la bande noire * Largeur Selection = 82 * 92 = 7544 pixels

    Choix n°2:

    A. Retailler Selection sur h ==> selection coupée a gauche et/ou a droite

    B. Facteur de Retaillement: h_Selection / h_Désiré = 100 / 112 = 0.983

    C. Retailler selection: nouveau_w = w/0.983 = 305 et nouveau_h = h / 0.983 = 112

    D. Largeur de la selection a couper a gauche ou droite = nouveau_w - w_Désiré = 305 - 92 = 213 pixels

    E. Surface de la selection a couper = Hauteur selection * Largeur de la coupe = 112 * 213 = 23856 pixels

Discussions similaires

  1. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 14h39
  2. Réponses: 2
    Dernier message: 02/03/2006, 18h38
  3. Tracer un cadre de sélection au dessus d'une image.
    Par Crisanar dans le forum Windows
    Réponses: 3
    Dernier message: 10/10/2005, 10h28
  4. Extraction d'une partie d'une image
    Par popol666 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 25/09/2005, 22h13
  5. [glut]afficher une partie d'une image
    Par khayyam90 dans le forum OpenGL
    Réponses: 3
    Dernier message: 17/07/2004, 16h35

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