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 :

Image et interpolation


Sujet :

2D Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2007
    Messages : 156
    Points : 540
    Points
    540
    Par défaut Image et interpolation
    Partant d'images 128x128 pour arriver à 1024x1024, j'ai essayé trois moyens. Le premier, renderingHint :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    Le deuxième en utilisant un noyau de convolution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Kernel k = new Kernel(5, 5, new float[] { .0036f, .0146f, .0256f, .0146f, .0036f, .0146f, .0586f, .09523f, .0586f, .0146f, .00256f, .09523f, .015f, .09523f, .0256f , .0036f, .0146f, .0256f, .0146f, .0036f, .0146f, .0586f, .09523f, .0586f, .0146f}); 
    ConvolveOp op = new ConvolveOp(k);
    BufferedImage blurry = op.filter(image, null);
    Le dernier avec Image.getScaleInstance() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image Image_finale = image.getScaledInstance(1024, 1024, Image.SCALE_SMOOTH);
    J'ai lu que ce dernier bien que déprécié était meilleur mais aussi plus lent.

    Le résultat est affligeant. Le dernier ne semblant même pas interpolé. Sinon cela donne une bouillie, une sorte de pixellisation lissée, laissant des "îlots". Mauvaise utilisation, trop grand suréchantillonnage, noyau trop petit ?

    J'allais oublier de préciser que nous utilisons une lookup table qui accentue le phénomène avec des contrastes importants.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Chaque pixel de l'image initiale va générer une zone de 8 pixels sur 8 pixels, soit 64 pixels. A moins d'être dans une série américaine ou le FBI est capable de zoomer sur un pixel pour lire une plaque d'immatriculation cachée par un arbre, tu ne pourras pas avoir quelque chose de très propre selon l'image de départ.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2007
    Messages : 156
    Points : 540
    Points
    540
    Par défaut
    Pourtant quand on regarde une image avec certains logiciels, tel Fiji, l'interpolation est propre avec le même facteur d'échelle.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2007
    Messages : 156
    Points : 540
    Points
    540
    Par défaut
    Ces images montraient que l'image étaient suréchantillonnées puis interpolées ou lissées ensuite. Nous avons finalement implémenté une interpolation bilinéaire pour ensuite être pleinement satisfaits par une interpolation bicubique. Les Experts peuvent donc aller se rhabiller.

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

Discussions similaires

  1. vidéo segmentation, image clé interpolation
    Par saturn1 dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 19/08/2012, 15h29
  2. Réponses: 3
    Dernier message: 17/03/2007, 00h47
  3. Interpoler une courbe à partir d'une image
    Par killerfrog dans le forum MATLAB
    Réponses: 3
    Dernier message: 13/03/2007, 22h44
  4. Débutant et interpolation d'image.
    Par lodan dans le forum Flash
    Réponses: 3
    Dernier message: 23/01/2007, 10h57
  5. interpolation 2 images avec matlab
    Par benyasla dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 13/04/2006, 13h14

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