Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 25 sur 25
  1. #21
    Futur Membre du Club
    Inscrit en
    février 2011
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 158
    Points : 15
    Points
    15

    Par défaut RE

    Bonjour,
    je viens de tomber sur cette page et je voudrais reimplementer ce code en C.
    Juste une question sur cette partie:
    Code :
    1
    2
    3
    4
    private void extend(Pixel p) {
    .....
    }
    D'apres ce que j'ai compris,vous me dites si ce n'est pas le cas,lorsqu'un pixel va être présent dans une liste, on va tester ces 8 voisins. Dans le cas ou rk =0 le pixel n'a pas encore été visité on met ca valeur de région à la valeur de région du pixel d'entré quelque soit sa valeur de région et on le met dans la liste du niveau correspondant.
    Par la suite si ce pixel à une valeur de level compris entre le level en cours et level+step, il va toujours prendre la valeur de la région du pixel du départ.
    Donc tous les pixels voisins qui n'ont pas été visité et qui on une valeur compris entre le level en cours et level+step vont être dans la même région?Donc plus step sera grand plus on aura de zone homogène?
    Et donc le sens de parcours peut changer plus ou moins la disposition des limites de région?

    D'avance merci.

  2. #22
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 962
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 962
    Points : 16 880
    Points
    16 880

    Par défaut

    Citation Envoyé par black_hole Voir le message
    D'apres ce que j'ai compris,vous me dites si ce n'est pas le cas,lorsqu'un pixel va être présent dans une liste, on va tester ces 8 voisins. Dans le cas ou rk =0 le pixel n'a pas encore été visité on met ca valeur de région à la valeur de région du pixel d'entré quelque soit sa valeur de région et on le met dans la liste du niveau correspondant.
    Oui. Lorsqu'on "étend" un pixel, on positionne toujours les valeurs de région pour chacun de ses 8 voisins. Au final, la valeur de région d'un voisin est soit :
    - "la meme que le pixel d'entrée" (le voisin n'avait pas été visité avant)
    - "watershed" (le voisin avait été atteint par une autre région)

    Par la suite si ce pixel à une valeur de level compris entre le level en cours et level+step, il va toujours prendre la valeur de la région du pixel du départ.
    Une fois qu'un voisin a été affecté à une région, sa valeur de région ne change plus. La seule exception étant que ce pixel peut être promu en "watershed" (cf remarque précédente)

    Donc tous les pixels voisins qui n'ont pas été visité et qui on une valeur compris entre le level en cours et level+step vont être dans la même région?Donc plus step sera grand plus on aura de zone homogène?
    Tout a fait, c'est la raison d'être de se paramètre "step" : réduire la sur-segmentation en acceptant un léger débordement.

    Et donc le sens de parcours peut changer plus ou moins la disposition des limites de région?
    Normalement ca n'a pas trop d'influence.

    Le prochain pixel à étendre est toujours extrait de la liste la plus "basse". Meme si des voisins ont été ajoutés dans des listes plus "hautes", ils ne seront traités que plus tard par l'algorithme.

    Code java :
    1
    2
    3
    4
    5
    6
    7
    8
    private Pixel nextPixel(int level, int step) {
    	// return the first pixel found in the explorelist
    	for(int i=level;i<level+step && i<GRAYLEVEL;i++) {
    		if (!explorelist[i].isEmpty()) 
    			return explorelist[i].remove(0);
    	}
    	return null;
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    Futur Membre du Club
    Inscrit en
    février 2011
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : février 2011
    Messages : 158
    Points : 15
    Points
    15

    Par défaut Re

    Merci pour ses réponses.

  4. #24
    Invité régulier
    Homme Profil pro Mehdi Drissi
    Étudiant
    Inscrit en
    mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme Mehdi Drissi
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : mai 2011
    Messages : 4
    Points : 5
    Points
    5

    Par défaut

    Bonsoir,

    Une question à celui qui voulait implementez le code en C.
    est ce que tu as réussi à le faire ?

    Sinon pour les autres un watershed en C++ ou avec OpenCv est ce possible?

    Merci.

  5. #25
    Membre chevronné
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    avril 2008
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : avril 2008
    Messages : 355
    Points : 701
    Points
    701

    Par défaut

    Citation Envoyé par MehdiDrissi Voir le message
    Sinon pour les autres un watershed en C++ ou avec OpenCv est ce possible?
    Evidemment que c'est possible en C++, watershed est un algorithme et peut donc être implémenté partout. Et un rapide coup d'oeil sur la doc d'OpenCV t'aurai donné la reponse: Opencv: misc image transforms.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •