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 :

Detection de contour


Sujet :

2D Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 55
    Points
    55
    Par défaut Detection de contour
    svp je cherche un programme pour la detection de contour d une image en java
    alors si qlq un peu m aider

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    le contour de l'image?

    en ouvrant l'image tu peux recuperer ses dimensions donc son contour, c'est ca que tu cherche?
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    tu peux utiliser des méthodes de traitement d'images : tu peux appliquer par exemple à ton image un filtre Laplacien pour en détecter le contour.

  4. #4
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 55
    Points
    55
    Par défaut slt
    merci pour vos reponses

    eclesia: oui c est ce que je veux

    azad892000:j ai pas pu faire le programme en java alors si vous pouvez m aider!!

    Merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    J'ai pas compris ce que tu veux :
    - récupérer les dimensions de l'image ?
    - ou bien détecter le contour d'un objet se trouvant dans ton image ?

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 55
    Points
    55
    Par défaut slt
    bonjour
    oui je veux détecter le contour d'un objet se trouvant dans ton image
    exactement ca alors si vous pouvez m aider
    marci d avance

  7. #7
    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,
    tu peux chercher dans les documentation de la bibliothèque JAI (java adavanced iamaging) peut être tu trouvrera des fonctions implémentant la méthode de sobel ou une autre méthode de détection de contours.
    en tout cas moi aussi je travail sur un petit projet de détection de mouvement dans une vidéo et ça nécessite la détection de contour de chaque objet se trouvant dans les frames de la vidéo si je trouve quelque chose je vais t'informer. et aussi les méthodes de détection de contours ne sont pas difficile à implimenter. il suffit de transformer l'image en pixel puis la multiplier par les deux matrices de sobel par exemple [1 -2 1;0 0 0;1 -2 1] pour la détection des contours vertical et multiplier la matrice d'image par la [1 0 1;-2 0 -2;1 0 1] et puis faire la somme des deux matrices résultats.

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par fAdoua123
    bonjour
    oui je veux détecter le contour d'un objet se trouvant dans ton image
    exactement ca alors si vous pouvez m aider
    marci d avance
    Si tu as une image m*n, tu peux faire une image des contours de (m-1)*(n-1) avec pour chaque pixel la moyenne des 3 pixels voisins:

    Pour chaque pixel, d = (a + b + c) / 3...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 32
    Points
    32
    Par défaut
    Salut,

    il n'est pas très difficile de réaliser cela en effet.
    Comme l'a dit Mehdiing, il suffit de récupérer la matrice des valeurs des pixels de l'image et appliquer un filtre dessus.

    J'ai déjà réalisé un projet de suivi de mouvement sur une vidéo, et j'ai eu besoin de faire de la détection de contour d'un objet au sein d'une image.

    Voici la fonction en C que j'ai utilisé, essaie de l'adapter en java :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    uint8_t* laplacien (uint8_t* image, int width, int height, int nb_iter) {
     
    	int num;
    	int i, j;
    	uint8_t *temp;
    	uint8_t *image_filtree;
     
    	temp = (uint8_t*)malloc(width*height*sizeof(uint8_t));
    	image_filtree = (uint8_t*)malloc(width*height*sizeof(uint8_t));
     
    	for (i=0;i<width*height;i++) {
    		temp[i] = image[i];
    	}
     
    	for (j=0;j<nb_iter;j++) {
    		for (i=0;i<width*height;i++) {
    			if ((i%width!=0)&&(i%width!=width-1)&&(i>width-1)&&(i<width*(height-1))) {
    				num = 4*temp[i] - temp[i-1] - temp[i+1] - temp[i-width] - temp[i+width];
    				image_filtree[i] = ((4*abs(num) > 255) ? 255 :  4*abs(num));
    			}
    		}
    		if (j!=nb_iter-1) {
    			for (i=0;i<width*height;i++) {
    				temp[i] = image_filtree[i];
    			}
    		}
    		j++;
    	}
     
    	free(temp);
    	return image_filtree;
    }
    Cette fonction prend en arguments :
    - image : il s'agit d'un tableau contigu des valeurs de pixels de l'image
    - width , height : dimensions de l'image en pixels
    - iter : le nombre d'itérations à réaliser pour appliquer le filtre
    La fonction renvoie l'image filtrée qui correspond aux contours de l'objet dans l'image.

    a+++

  10. #10
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 55
    Points
    55
    Par défaut slt
    merci pour vos reponses
    le problemes que j arrive pas a faire le programme en java
    d habitude je programme en c++ mais la il faut que j travail avec java
    et ca marche pas !!!
    bon je vais essai encore une fois
    merci

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, azad_892000.

    J'ai voulu tester ton code et j'y ai noté quelques erreurs.

    Par exemple, il y a un j++ à la fin d'une boucle for. Je pense qu'il est en trop, et d'ailleurs les images générées en fonction du nombre d'itérations sont identiques deux à deux à cause de lui.

    Dans ton calcul, image_filtree[i] = ((4*abs(num) > 255) ? 255 : 4*abs(num)); il me semble qu'il faut diviser num par 4 après l'application du filtre plutot que le multiplier. Enfin, c'est ce que j'ai vu d'habitude dans les différents filtres.

    J'aimerais bien que tu me montres les résultats que tu obtiens, parce qu'en l'appliquant sur une image de nuages, je n'en obtiens pas vraiment les contours.

    A quoi te sert-il de prendre la valeur absolue de num ? Le Laplacien n'est-il pas sensé détecter les passages par zéro, lesquels sont, je pense, effacés en ne conservant que les valeurs absolues.

    Pourais-tu m'indiquer ce que sont les itérations qu'il faut passer en paramètre ? Je ne connais pas bien le Laplacien et je ne vois pas ce qu'elles apportent d'image en image.

    Merci d'avance

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut contours
    je veux qq cours qui parle (definition de contour,detection de contour,segmentation des images en contours,types de contour(prelmier derivé,deuxiéme derivé),premier dérivée de l'image,deuxiéme derivéé de l'image,laplacien,gaussienne,comparaison entre eux,laplacien de gaussienne,approche local pr les contours,approche golbal pr les contours,contours:transformée de Hough)
    j ai un projet sur ca je veux qq document bien expliqué sur ca pr que je puisse comprendre
    merci
    je vous attends votre réponse

  13. #13
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    vous pouvez m'aidez svp!!!

  14. #14
    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
    il suffit de chercher sous google par exemple voici un :
    lien

    sous google aussi.

  15. #15
    Membre régulier Avatar de zolotaya
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 93
    Points : 78
    Points
    78
    Par défaut
    Voila un ti bout de code en JAVA que j'ai utilisé pour faire de la détéction de contour. C'est un simple Laplacien mais ca marche pas trop mal
    appelle fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BufferedImage img_contour = TDImages.contour(imgSource);
    ton image source en noir et blanc ca marche mieu

    fonction appellée :

    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
     
    	public static BufferedImage contour(BufferedImage src) {
     
    		BufferedImage dst = new BufferedImage(src.getWidth(), src.getHeight(),
    				BufferedImage.TYPE_INT_ARGB);
    		// Definition du masque de convolution utilisé pour la détéction des contours de
    		// l'image
    		float[] mask = { -0.1F, -0.1F, -0.1F, -0.1F, 0.8F, -0.1F, -0.1F, -0.1F, -0.1F};
    		Kernel kernel = new Kernel(3, 3, mask);
    		// On creer notre outils de convolution
    		ConvolveOp convo = new ConvolveOp(kernel);
    		// On effectue la convolution
    		convo.filter(src, dst);
    		// On retourne l'image convoluée
    		return dst;
    	}
    Voila, en esperant t'avoir fait avancer un petit peu

Discussions similaires

  1. Detection de contour
    Par MushuDev dans le forum C++
    Réponses: 6
    Dernier message: 10/02/2009, 12h43
  2. detection de contour et extraction de primitives + label
    Par smartyme dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 16/07/2008, 20h42
  3. Réponses: 4
    Dernier message: 15/03/2008, 11h13
  4. filtre de detection de contour ISEF
    Par malikakika dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/10/2007, 13h17
  5. Detection de contour avec click de souris
    Par fAdoua123 dans le forum Interfaces Graphiques en Java
    Réponses: 15
    Dernier message: 24/04/2007, 00h31

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