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

2D Java Discussion :

Repérer un point dans une image


Sujet :

2D Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut Repérer un point dans une image
    Bonjour,

    Ca fait un moment que je suis dessus, voici mon problème

    En gros, je dispose d'une interface avec des images dessus, sur ces images, je fais des rotations, translations et redimensionnements, et j'aimerais repérer si un point (un clic par exemple) est dans l'image ou non.
    Bien sur, si l'image est affichée à 45 degrés, je peux pas me contenter de vérifier si le point est compris entre les largeurs et hauteurs minimum et maximum de l'image.

    Alors j'ai vu qu'il était possible de modifier le repère d'un point avec quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public boolean contains(Point2 p)
    {
        AffineTransform at = new AffineTransform();
        at.setToIdentity();
        at.scale(width, height);
        at.rotate(angle);
        at.translate(x, y);
        Point2D curseur = new Point2D.Double(p.getX(), p.getY());
        Point2D curseurOBB = new Point2D.Double();
        at.transform(curseur, curseurOBB);
        ...
    }
    Mais après, j'ai du mal à appréhender le changement de repère ect, à ce stade, je ne sais pas trop ce que je dois comparer, quelqu'un saurait m'expliquer ?

    Merci !!!!

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 817
    Par défaut
    Salut

    Citation Envoyé par Lacuna Voir le message
    Mais après, j'ai du mal à appréhender le changement de repère ect, à ce stade, je ne sais pas trop ce que je dois comparer, quelqu'un saurait m'expliquer ?
    Le plus simple serait de faire la démarche inverse, rechercher le point origine correspondant au point transformé que tu cliques.

    Ca donnerait quelque chose comme ça, en reprenant ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Point2D curseurOBB = new Point2D.Double(p.getX(), p.getY());
        Point2D curseur = new Point2D.Double();
        at.inverseTransform(curseurOBB, curseur);
    et ensuite tu compares curseur avec les largeur/hauteur de ton image.

    Pas testé, mais c'est l'idée...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 56
    Par défaut
    Bonjour,

    Perso, je ferai un rectangle2D de format, angle de rotation et position de chaque image.
    Ensuite je testerai si mon Rectangle2D contient mon Point2D

    Voilà.

    Cdt,
    DMF

  4. #4
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    En fait, dans les classes d'image, j'ai un paramètre "obb", qui est une classe qui représente l'image, son orientation, sa taille ect. Je dois repérer le point dans cette obb.

    j'essaie la façon de faire de Plegat, je regarde pour l'histoire du rectangle, et je dis quoi

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    Bon, j'ai fini par faire la méthode de Plégat, j'ai inversé la transformation, que j'ai appliquée à mon point, ça fonctionne bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Clustering de points dans une image
    Par DirtyBoy dans le forum Traitement d'images
    Réponses: 15
    Dernier message: 28/01/2009, 17h34
  2. Clustering de points dans une image
    Par lgomez dans le forum OpenCV
    Réponses: 8
    Dernier message: 19/09/2008, 16h32
  3. Clusturing de points dans une image
    Par faroukus dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 28/08/2008, 15h05
  4. recherche de points dans une image
    Par Clemsouille dans le forum Images
    Réponses: 4
    Dernier message: 26/05/2008, 14h38
  5. le pixel noir le plus proche d'un point dans une image
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 28/03/2006, 08h44

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