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 :

[imageJ] détection et sauvegarde des données d'une image un plugin à tester


Sujet :

Traitement d'images

  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut [imageJ] détection et sauvegarde des données d'une image un plugin à tester
    Bonjour,

    je tente d'écrire un plug-in qui puisse détecter et sauvegarder les contours ainsi que les textures d'une image. Je compile mon plugin en fichier jar mais il n'apparaît pas dans le menu plugin d'imagej et quand j'essaie de le compiler manuellement à partir d'imagej (compile and run sous plugin) je me retrouve avec le message suivant

    ImageDataExtractor requiert an image of type
    Or, j'estime que n'importe quelles images doivent être compatibles.

    Je voulais vous laisser deux choses afin que vous puissiez examiner mon problème.

    1. Le projet eclipse du plug-in (ci-joint)
    2. des extrat de code de :

    ByteProcessor

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    case FIND_EDGES: // 3x3 Sobel filter
    	        			sum1 = p1 + 2*p2 + p3 - p7 - 2*p8 - p9;
    	        			sum2 = p1  + 2*p4 + p7 - p3 - 2*p6 - p9;
    	        			sum = (int)Math.sqrt(sum1*sum1 + sum2*sum2);
    	        			if (sum> 255) sum = 255;
    	        			System.out.println("x = "+x+"\ny = "+y);
    						break;
    shortProcesser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    for (int x=roiX; x<xEnd; x++,p++) {
                        if (x<width-1) { p3++; p6++; p9++; }
                        v1 = v2; v2 = v3;
                        v3 = pixels2[p3]&0xffff;
                        v4 = v5; v5 = v6;
                        v6 = pixels2[p6]&0xffff;
                        v7 = v8; v8 = v9;
                        v9 = pixels2[p9]&0xffff;
                        double sum1 = v1 + 2*v2 + v3 - v7 - 2*v8 - v9;
                        double sum2 = v1  + 2*v4 + v7 - v3 - 2*v6 - v9;
                        double result = Math.sqrt(sum1*sum1 + sum2*sum2)+0.5;
                        if (result>65535.0) result = 65535.0;
                        if (result == 65535.0 )
    	        			System.out.println("x = "+x+"\ny = "+y);
                        pixels[p] = (short)result;
                    }
                    break;
    Remarque : Les lignes écrites en gras sont les lignes que je ne comprends pas.
    A propos. Qu'est-ce que le gardien et comment se calcul-t-il ?

    Merci d'avance pour vos réponses
    Fichiers attachés Fichiers attachés
    Battant

  2. #2
    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 : 51
    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 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Battant Voir le message
    Remarque : Les ligne écrite en gras sont les ligne que je ne comprend pas.
    A propos. Qu'est-ce que le gardien et comment se calcul-t-il ?
    C'est GRADIENT et pas gardien.

    Les lignes en question permettent de calculer la norme du vecteur gradient au point P. Ce vecteur indique dans quelle direction et avec quelle force l'image varie en intensité autour du point P.

    Pour calculer les composantes x et y de ce vecteur, on doit calculer les dérivées en x et en y de l'image. Comme l'image est un ensemble de valeurs discrètes (et pas une fonction continue), on approxime la dérivée par une différence finie. Dans ton code, cette approximation s'appelle le filtre de SOBEL.

    Si on veut calculer le gradient du point p5, on a besoin des 8 points voisins:

    p1 p2 p3
    p4 p5 p6
    p7 p8 p9

    La dérivée sur x est approximée en faisant la moyenne (pondérée) des pixels à gauche de p5 et en soustrayant la moyenne (pondérée) des pixels à droite de p5:

    Gx = (p1+2*p4+p7) - (p3+2*p6+p9)

    Meme chose pour la dérivée sur y, en prenant les pixels en haut / bas de p5

    Gy = (p1+2*p2+p3) - (p7+2*p8+p9)

    Le vecteur gradient à donc pour composantes (Gx,Gy).
    Sa norme est racine(Gx² + Gy²)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    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
    Citation Envoyé par Battant Voir le message
    Or, j'estime que n'importe quelles images doivent être compatibles.
    Ca reste ton opinion, mais dans tous les cas il faut te plier aux règles d'ImageJ.

    Sinon je pense qu'il y a un problème dans le calcul de ton Sobel !
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    if (sum> 255) sum = 255;
    Ceci est très maladroit voire faux !
    Après la première étape de Sobel, les valeurs pour chaque pixel peuvent varier sur [-4x255, 4x255].
    Tu dois alors les interpoler linéairement sur [0,255] en utilisant préalablement (si tu le souhaites et en fonction de ton objectif) une valeur absolue.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut
    Bonjour,

    J'ai encore besoin de clarifier quelque chose.

    Est-ce que quelqu'un a regardé le code de mon plug-in ? (ficher joint) ?

    J'aimerais que vous me donniez votre avis dessus.

    En outre, j'aimerais savoir quelle sont les régle d'imagej s'il y en a. Le problème peut en effet venir de là

    Je rappelle qie je n'ai pas le nom de mon plug-in dans le menu. J'avais déjà eu ce problème mais cette fois ci je ne comprend rien.

    Tout est configuré selon le howto que l'on m'avais consellé sur ce topic

    http://www.developpez.net/forums/d91...ler-lexecuter/

    pourriez-vous tester mon plug-in et me dire ce que ça donne chez vous ?

    Merci pour votre aide

    A bientôt
    Battant

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/02/2015, 14h44
  2. Sauvegarde des données d'une fenètre JavaFX
    Par bastfiche dans le forum JavaFX
    Réponses: 0
    Dernier message: 23/02/2014, 19h15
  3. [AC-2010] Empécher la sauvegarde des données sur une table liée
    Par gimly90 dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2013, 08h09
  4. Découpage et extraction des données d'une image
    Par Gouyon dans le forum Visual C++
    Réponses: 10
    Dernier message: 15/11/2007, 14h41
  5. vc++(6)+extraction des données dans une image(.tif)
    Par spootnic22 dans le forum Visual C++
    Réponses: 1
    Dernier message: 22/11/2006, 16h14

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