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

ImageJ Java Discussion :

extraire seulement scale(x,y) apartir de l'affine transformation d'une l'image


Sujet :

ImageJ Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 23
    Points
    23
    Par défaut extraire seulement scale(x,y) apartir de l'affine transformation d'une l'image
    J'ai une matrice resultante a partir d une combinaison de rotation et scale selon l axe x et l axe y . est ce que je peu extraire seulement le scale pour redimensinner seulemt l'image sans faire la rotation.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Appliquer une rotation inverse?
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    est ce que ca depend de l ordre et le nombre de transformation :
    * rotation , translation , rotation
    * translation , rotation , translation

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    La matrice de transformation est la résultant de toutes les opérations que vous lui avez donné. Si vous voulez connaitre le facteur de zoom résultant que vous avez obtenu, je vous suggère de prendre trois points: A(0,0) B(100,0) C(0,100), vous les transformez tous les trois avec la matrice et mesurez la distance A-B et A-C résultante. vous comparez à la distance de départ et vous avez une idée votre facteur de zoom.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 23
    Points
    23
    Par défaut les coordonnees de mon image sont inconnus
    Le probleme s est que je ne peut pas connaitre les coordonne des point sur mon image car je connait seulement le conteneur graphics2D :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Graphics2D gimg = contentPage.createGraphics(wg,hg);
     AffineTransform transformer = new AffineTransform(a,b,c,d,0,0);
               gimg.transform(transformer);
     gimg.drawImage(img, x,y ,w,h, null);
    Je doit positionner cette image dans ce graphics2D que je lui applique une transformation.
    Al aide de cette formule je peut trouver x' et y' mais il me manque l echelle:

    x = x0 + (x' cos(φ) - y' sin(φ)) * échelle
    y = y0 + (x' sin(φ) + y' cos(φ)) * échelle

    j ai comprit que l echelle suivant x est scaleX , echelle suivant y est scaleY.
    est ce que se calcul est faux , est ce que l echelle a une seule valeur (ca ne depend ni de x ni de y) , ou bien ca depent de la taille du Graphics2D ou de la taille de l image.
    Merci de m eclairir .

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ce n'est pas du tout la formule qui est utilisée par affinetransform. LEs trasnformation affines sont expliquées ici:
    http://en.wikipedia.org/wiki/Affine_transformation


    Votre formule n'est qu'un cas particulier, hors, si j'ai bien suivi votre message, vous avez une transformations affine existante et cherchez son scale.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    je travaille sur un projet itext , Je veux cree unfichier pdf dans le quelle il y a des image a partir d une application flash.
    le repere dans l application flash est 10000/10000 pixel qui n est pas le meme dans le fichier pdf.
    S est pour ce la que j ai besoin de connaitre les coordonnes de mon image par rapport au nouveau repere .
    j ai fais la rotation inverce comme on me la dit pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    transformer.rotate(Math.toRadians(-rotate));
    		float a=(float) transformer.getScaleX();float d=(float) transformer.getScaleY();
    		float b=(float) transformer.getShearX();float c=(float) transformer.getShearY();
    Je croit qui il faux que b et c soit eguale a 0 pour que a et d soit les scales.
    j ai besoin du scale pour connaitre la postion exacte de mon image car sans rotation j arrive a calculer la postion exacte de mon image

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    j'ai toujours pas compris pourquoi vous essayez d'aller à l'envers dans votre matrice. Vous avez une image de départ: 10000x10000, vous avez un image final (Disons 500x500), vous prenez votre Graphics, vous lui ajouter un affine qui faite un scale 1/20x1/20 et le tour est joué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Graphics2D g = .....;
    AffineTransform t = new AffineTransform();
    t.scale(0.05,0.05);
    g.drawImage(imageFlash,t,null);

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    Merci tchize ,
    s est ca le probleme je ne connait pas les dimension de l image apres la trasformation car la tronsformation est applique au graphics2D qui n a pas les meme dimension que l image voici un exemple.en plus j ai deux application flash et java. je prend les donnee flash que je ne peut pas modifier et je les trasmet a itext pour generer le pdf.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <a>-0.5533490180969238</a>
    <b>-0.4213285744190216</b>
    <c>0.2621118724346161</c>
    <d>-0.3442431092262268</d>
    <tx>5055.05</tx>
    <ty>5356.15</ty>
    </matrix>
    <width>780.0500000000002</width><!-- largeur box  le graphics 2D-->
    <height>760.5999999999995</height><!-- hauteur box le graphics 2D -->
    Comment je peut savoir les donnee de mon image x,y,hauteur, largeur , je connait seulement les donne du conteneur de l image.

Discussions similaires

  1. Réponses: 10
    Dernier message: 29/11/2014, 16h01
  2. Réponses: 3
    Dernier message: 20/02/2014, 15h34
  3. Extraire seulement des chiffres dans une cellule
    Par helkøwsky dans le forum Excel
    Réponses: 2
    Dernier message: 12/11/2010, 17h59
  4. Réponses: 5
    Dernier message: 02/05/2009, 19h10
  5. [Access] extraire une date apartir d'un champs DateTime
    Par touhami dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/01/2008, 10h23

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