+ Répondre à la discussion
Page 7 sur 8 PremièrePremière ... 345678 DernièreDernière
Affichage des résultats 121 à 140 sur 147
  1. #121
    Candidat au titre de Membre du Club
    Homme Profil pro
    Inscrit en
    juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : juillet 2011
    Messages : 29
    Points : 11
    Points
    11

    Par défaut Champ GVF: coefficient mu et Energie à minimiser

    salut les informaticiens..j'ai deux questions :primo, je lù q: " la déformation se base sur la minimisation d'une énergie!!! " c'est quoi cette énergie (pas analytiquement mais au sens sémantique) ? et comment le compilateur utilise cette dernière? que je sache , lors de l'implémentation d'un GVF, le snake se déforme sous l'influence du flux du GVF ,donc sous l'influence des 'forces' ,et dans ce contexte , tout ce blabla concernant l’énergie n'a plus sa place..secondo, j'ai donné trois valeurs différentes à mu:

    m=0: un flux proche des frontieres.
    m==0.1: un résultat optimal (une bonne diffusion sur toute la carte).
    mu=0.3 : le flux du champ diverge des contours (impossible de voir le snake converger)..pourquoi ce résultat ?..merci

  2. #122
    Membre chevronné Avatar de b_reda31
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2007
    Messages
    594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2007
    Messages : 594
    Points : 624
    Points
    624

    Par défaut

    Bonjour,

    salut les informaticiens..j'ai deux questions :primo, je lù q: " la déformation se base sur la minimisation d'une énergie!!! " c'est quoi cette énergie (pas analytiquement mais au sens sémantique) ?
    Comme tu le dis,la déformation se base sur la minimisation d'une énergie globale, cette énergie est composée de plusieurs énergies : Internes, Externes et énergies de contexte.

    1. L'énergie interne est indépendante du contenu de l'image, elle gère uniquement la cohésion de la forme du Snake,le choix de Kaas et ses collaborateurs s'est porté sur la subdivision de cette énergie en deux sous-énergies : l'énergie de Continuité et l'énergie de Courbure.

    1.1. L'énergie de continuité tente de rapprocher les points du Snake entre eux , ce qui revient à minimiser la variation des coordonnées curvilignes, d'où l'utilisation de la dérivée première de coordonnées curvilignes v'(s).

    1.2. L'énergie de courbure incite le snake à avoir une forme plus ou moins arrondi s'il est fermé, ou une droite s'il est ouvert, de manière à éviter les angle trop anguleux. Le principe consiste donc à minimiser la variation de la pente de la tangente en chaque point du Snake. La pente étant exprimée par la dérivée première de v(s), sa variation est donc exprimé par la dérivée seconde des coordonnées curvilignes soit v''(s).

    D'autres énergies internes peuvent être introduites telles que l'énergie d'uniformité de cette contribution, celle-ci tente de répartir les points du Snake de manière équidistante.

    2. L'énergie externe est celle qui tente de rapprocher les point du Snake vers les points "intéressants" de l'image où il s'agit généralement des points de fort gradient. Ainsi le gradient (en signe inversé) peut être considéré comme énérgie externe (à minimiser).

    3. L'énergie de contexte est une énergie facultative que l'on peut introduire selon le contexte des images à traiter, il peut s'agir par exemple de l'énergie de ballon.

    et comment le compilateur utilise cette dernière?
    Le compilateur interprète et exécute ce que tu lui demande de faire. Si ta question se porte sur l'implémentation des dérivées, elles sont généralement calculées par la méthodes des différences finies.

    Voilà, j'éspère avoir pu t'apporter quelques éclaircissements.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»

  3. #123
    Candidat au titre de Membre du Club
    Homme Profil pro
    Inscrit en
    juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : juillet 2011
    Messages : 29
    Points : 11
    Points
    11

    Par défaut

    slt..ce que je ne comprends pas, c'es en programmant, on a même pas besoin de cette notion d'énergie, il suffit de créer les forces et le snake évoluera sous l'influence eds forces.

  4. #124
    Candidat au titre de Membre du Club
    Homme Profil pro
    Inscrit en
    juillet 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : juillet 2011
    Messages : 29
    Points : 11
    Points
    11

    Par défaut

    aussi, il y a deux trucs que je ne saisie pas encore: premièrement , pour le GVF il y a ce pas de temps deta T, mais en programmation aucune trace de lui!!!, pour ce qui est de la discrétisation avec la méthode des différences finies, on utilise un pas h (distance entre points du contours ), mais j'ai vu un code où on travaille plutot avec un intervalle (dmin,dmax): si distance entre deux points du snake < dmin , supprimer un point , si distance entre deux points du snake > dmax, insérer un point !!! , et troisièmement, le coefficient mu, donne un flux de vecteur qui diverge pour une valeur supérieure à 0.2 ? pourquoi ça diverge, et pourquoi à partir de cette valeur ?

  5. #125
    Membre chevronné Avatar de b_reda31
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2007
    Messages
    594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2007
    Messages : 594
    Points : 624
    Points
    624

    Par défaut

    slt..ce que je ne comprends pas, c'es en programmant, on a même pas besoin de cette notion d'énergie, il suffit de créer les forces et le snake évoluera sous l'influence eds forces.
    Il existe surement d'autres techniques pour faire évoluer le Snake mais dans cette contribution, le code qu'a fournit pseudocode est basé sur la minimisation de l'énergie globale :
    Code java :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    private boolean step() {
    	boolean changed=false;
    	Point p = new Point(0,0);
     
    	// compute length of original snake (used by method: f_uniformity)
    	this.snakelength = getsnakelength();
     
    	// compute the new snake
    	List<Point> newsnake = new ArrayList<Point>(snake.size());
     
    	// for each point of the previous snake
    	for(int i=0;i<snake.size();i++) {
    		Point prev = snake.get((i+snake.size()-1)%snake.size());
    		Point cur  = snake.get(i);
    		Point next = snake.get((i+1)%snake.size());
     
    		// compute all energies
    		for(int dy=-1;dy<=1;dy++) {
    			for(int dx=-1;dx<=1;dx++) {
    				p.setLocation(cur.x+dx, cur.y+dy);
    				e_uniformity[1+dx][1+dy] = f_uniformity(prev,next,p);
    				e_curvature[1+dx][1+dy]  = f_curvature(prev,p,next);
    				e_flow[1+dx][1+dy]       = f_gflow(cur,p);
    				e_inertia[1+dx][1+dy]    = f_inertia(cur,p);
    			}
    		}
     
    		// normalize energies
    		normalize(e_uniformity);
    		normalize(e_curvature);
    		normalize(e_flow);
    		normalize(e_inertia);
     
    		// find the point with the minimum sum of energies
    		double emin = Double.MAX_VALUE, e=0;
    		int x=0,y=0;
    		for(int dy=-1;dy<=1;dy++) {
    			for(int dx=-1;dx<=1;dx++) {
    				e = 0;
    				e+= alpha * e_uniformity[1+dx][1+dy]; // internal energy
    				e+= beta  * e_curvature[1+dx][1+dy];  // internal energy
    				e+= gamma * e_flow[1+dx][1+dy];       // external energy
    				e+= delta * e_inertia[1+dx][1+dy];    // external energy
     
    				if (e<emin) { emin=e; x=cur.x+dx; y=cur.y+dy; }
    			}
    		}
     
    		// boundary check
    		if (x<1) x=1;
    		if (x>=(this.width-1)) x=this.width-2;
    		if (y<1) y=1;
    		if (y>=(this.height-1)) y=this.height-2;
     
    		// compute the returned value
    		if (x!=cur.x || y!=cur.y) changed=true;
     
    		// create the point in the new snake
    		newsnake.add(new Point(x,y));
    	}
     
    	// new snake becomes current
    	this.snake=newsnake;
     
    	return changed;
    }

    si distance entre deux points du snake < dmin , supprimer un point , si distance entre deux points du snake > dmax, insérer un point !!!
    Il s'agit ici du mécanisme d'auto-adaptation du Snake qui n'a rien à voir avec le pas de discrétisation, jettes un coup d'oeil sur le code du post #1
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»

  6. #126
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2011
    Messages : 1
    Points : 1
    Points
    1

    Par défaut contour actif et LPE

    Bonjour , voila je voudrais vous poser une petite question, pour mes études d'ingénieur, je cherche un moyen d'éffectuer un prétretement par LPE d'une image puis lui appliquer le contour actif "snake" sous MATLAB, pourriez vous me proposer une solultion svp...

  7. #127
    Invité de passage
    Inscrit en
    mars 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : mars 2011
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    je cherche un code pour la détection de points de courbure de la main sous matlab et merci d’avance

    slt il ya pas une personne qui repond de ma question

  8. #128
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par mira26 Voir le message
    je cherche un code pour la détection de points de courbure de la main sous matlab et merci d’avance

    slt il ya pas une personne qui repond de ma question
    Quel rapport avec le Snake ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #129
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    Bonjour,
    merci pseudocode pour le code en java.
    J'ai fais une implémentation en C++ avec opencv pour sobel et la binarisation.

    J'ai trouve que le resultat était mieux que avec opencv.
    Avec opencv mes points se barre en cacahuète.
    Avec ton algo il bouge moins mais du coup parte moins en cacahuète.

    Sur l'exemple du trefle ca se fit bien direct.
    Mais sur des images complexe avec un vrai fond et des bords moins nets le résultat est plus mitigé: quelques points se rapproche du bord mais beaucoup reste a leur position initial.
    Je pense que cela vient de la flow map, elle ne contient pas assez d'informations, certains objets ne sont plus visible avec la flow map(c'est juste du noir au lieu d'avoir un gradient de blanc...)

    Quelle seuil est-il commun d'utiliser pour la binarisation?

    Par contre le gradient est pas trop mal on a bien les informations...

    Merci

  10. #130
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par saturn1 Voir le message
    Je pense que cela vient de la flow map, elle ne contient pas assez d'informations, certains objets ne sont plus visible avec la flow map(c'est juste du noir au lieu d'avoir un gradient de blanc...)
    Oui, c'est le problème avec cette 'astuce' d'utiliser la binarisation : on perd les informations d'intensité (niveau de gris) et donc le flot devient uniforme au lieu de s'accentuer/diminuer selon l'intensité du gradient.

    Sinon aui post #42 il y a une implémentation du GVF (Gradient Vector Flow) qui permet d'avoir un flot moins uniforme.

    Quelle seuil est-il commun d'utiliser pour la binarisation?
    J'utilise souvent le maximum d'entropie.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #131
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    Bonjour et merci pour la reponse.

    J'ai implementer le maximum d'entropie(on trouve tout sur le forum de dvpz^^).

    Par contre pour le gvf comment affiches tu l'image?
    => Pour un pixel de coordonée (x,y) le vecteur de flux est Flux(x,y) = ( U[x][y] , V[x][y] )
    Merci

    EDIT: j'ai fait comme supposer sur le post suivant

    Code :
     sqrt(resgvf[0][i][j] * resgvf[0][i][j] + resgvf[1][i][j] * resgvf[1][i][j]);
    Mais cependant le résultat est très dépendant de la variable mu.
    Que represente-t-elle?
    Merci

  12. #132
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par saturn1 Voir le message
    Par contre pour le gvf comment affiches tu l'image?

    EDIT: j'ai fait comme supposer sur le post suivant

    Code :
     sqrt(resgvf[0][i][j] * resgvf[0][i][j] + resgvf[1][i][j] * resgvf[1][i][j]);
    Tu peux effectivement afficher la norme du vecteur. Cela dit, si tu calcules le GVF tu n'as pas besoin d'utiliser la norme du vecteur dans le Snake. Comme tu as déjà le vecteur (2D), tu peux utiliser directement cette information pour calculer l'energie du flot (par exemple un produit scalaire entre le vecteur grandient et le vecteur de déplacement).

    Mais cependant le résultat est très dépendant de la variable mu.
    Que represente-t-elle?
    Merci
    C'est le 'pas' utiliser pour résoudre l'équation. Normalement le 'pas' ne devrait pas trop influencer le résultat final... il faut juste plus/moins d'itérations pour converger.

    Ref. "Gradient Vector Flow: A New External Force for Snakes" sur internet.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #133
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    J'obtiens ceci comme image:


    Cela dit, si tu calcules le GVF tu n'as pas besoin d'utiliser la norme du vecteur dans le Snake. Comme tu as déjà le vecteur (2D), tu peux utiliser directement cette information pour calculer l'energie du flot (par exemple un produit scalaire entre le vecteur grandient et le vecteur de déplacement).
    Le vecteur gradient? moi j'ai juste un scalaire pour le gradient en x,y.

    J'ai commencé à lire le papier de référence c'est dur a digérer.

    Merci


    Edit:
    je fais comme ceci pour calculer l'energie du flot:
    Code :
    1
    2
    3
    4
    5
    6
    7
    			CvPoint a;
    			CvPoint b;
    			a.x = resgvf[0][i][j]; a.y = resgvf[1][i][j];
    			b.x = sobelX->imageData[sobelX->widthStep * j + i * 3 + 2];
    			b.y = sobelY->imageData[sobelY->widthStep * j + i * 3 + 2];
    			fl[i][j] =  (a.x * b.x) + (a.y * b.y);
    Ensuite je passe fl[][] qui correspont à flow dans ton algo snake.
    Mais résultat peu concluant.

  14. #134
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par saturn1 Voir le message
    Le vecteur gradient? moi j'ai juste un scalaire pour le gradient en x,y.
    NB: vu ton image, est-ce que tu a bien normalisé ton image entre 0 et 1 avant de calculer le GVF ?

    je fais comme ceci pour calculer l'energie du flot:
    Code :
    1
    2
    3
    4
    5
    6
    7
    			CvPoint a;
    			CvPoint b;
    			a.x = resgvf[0][i][j]; a.y = resgvf[1][i][j];
    			b.x = sobelX->imageData[sobelX->widthStep * j + i * 3 + 2];
    			b.y = sobelY->imageData[sobelY->widthStep * j + i * 3 + 2];
    			fl[i][j] =  (a.x * b.x) + (a.y * b.y);
    hum... Je pense que tu devrais utiliser directement le GVF (resgvf) dans la fonction g_flow afin de verifier que le déplacement du noeud suit le flot.

    Code java :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private double f_gflow(Point cur, Point p) {
     
    	// gradient flow at point "cur"
    	double gx = this.gvf[0][cur.x][cur.y];
    	double gy = this.gvf[1][cur.x][cur.y];
     
    	// movement of the node 
    	double dx = p.x-cur.x;
    	double dy = p.y-cur.y;
     
    	// check alignment of both vectors
    	double d = dx*gx + dy*gy;
    	return d;
    }

    (Code non testé... peut-être qu'il faut retourner -d au lieu de +d)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #135
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    Ok merci, pour l'image j'avais un soucis de byte versus float actuellement j'affiche la norme du gvf

    Code :
    onegvf[cc++] = sqrtf(resgvf[0][i][j] * resgvf[0][i][j] + resgvf[1][i][j] * resgvf[1][i][j]);
    Mais je n'obtiens toujours pas le bon resultat.

    Merci de votre aide

    EDIT: trouve.
    Pour ce que ca interesse:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    for (int j = 0; j < img->height; j+=5)
    	{
    		for (int i = 0; i < img->width; i+=5)
    		{
    			CvPoint a; CvPoint b;
    			a.x = i;
    			a.y = j;
    
    
    			float bx = resgvf[0][i][j];
    			float by = resgvf[1][i][j];
    
    			 
    			double len = sqrtf(resgvf[0][i][j] *resgvf[0][i][j] + resgvf[1][i][j] * resgvf[1][i][j]);
    			if (len != 0){
    				bx /= len; by /= len;
    				bx *= 5; by *= 5;
    			}
    
    			b.x = i + bx; b.y = j + by;
    
    			cvLine(igvf, a, b, CV_RGB(1, 1, 1));
    		}
    Edit2.
    Ça marche bien sur des images simples comme le trèfle en exemple.

    Mais sur des images plus complexe avec un vrai fond, le résultat est plus mitige.
    Dans le test que j'effectue, mes points initiaux ne sont pas très loin du contour final.
    Je me demande si il n'existe pas une technique pour augmenter le contraste se basant sur la forme initiale.
    Par exemple si je fixe un contour initial a environ 10 pixel du contour final, augmenter l’intensité de chaque pixel situé à 10 pixel + l’intérieur, pour que le snake marche mieux.

    Merci de vos avis si vous avez déjà implémenté des méthodes similaires.

  16. #136
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par saturn1 Voir le message
    Ça marche bien sur des images simples comme le trèfle en exemple.

    Mais sur des images plus complexe avec un vrai fond, le résultat est plus mitige.
    Dans le test que j'effectue, mes points initiaux ne sont pas très loin du contour final.
    Lorsque le flow est vraiment complexe, l'algo donné ici est trop simpliste. Dans cet algo, on déplace les points du Snake un par un de manière indépendante ("explicit scheme"). Ca ne garantit pas la convergences global du Snake.

    Une piste possible est de déplacer simultanément tous les points du Snake à chaque étape ("semi implicit scheme"). Une petite recherche sur "Fast Methods for Implicit Active Contour Models" donnera plus de détails.

    Je me demande si il n'existe pas une technique pour augmenter le contraste se basant sur la forme initiale.
    Par exemple si je fixe un contour initial a environ 10 pixel du contour final, augmenter l’intensité de chaque pixel situé à 10 pixel + l’intérieur, pour que le snake marche mieux.
    Un prétraitement de l'image améliore toujours les choses. Mais il n'est pas si évident que cela de trouver le prétraitement ideal, surtout s'il dépend de la forme de l'objet !
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  17. #137
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    J'ai pour le moment choisi la solution de faire un gros prétraitement et de passer au snake une image clean.
    Je fais un canny pour avoir les contours ensuite j’enlève tous les contours qui ne sont pas parallèles au segment du contour initial le plus proche.

    Edit: en tout cas merci pour ton aide, et le code source d’implémentation en java.

  18. #138
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    Bonjour,
    serait-il intéressant de mélanger un canny avec un watershed, pour segmenter une image?
    J'ai fais des tests des deux techniques séparés, en faisant une intersection des résultats je pense que ca peut donner un bon truc.

    Mais je n'ai pas trouvé beaucoup de pointer à ce sujet.

  19. #139
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par saturn1 Voir le message
    Bonjour,
    serait-il intéressant de mélanger un canny avec un watershed, pour segmenter une image?
    J'ai fais des tests des deux techniques séparés, en faisant une intersection des résultats je pense que ca peut donner un bon truc.

    Mais je n'ai pas trouvé beaucoup de pointer à ce sujet.
    Ca n'a pas trop la même finalité qu'un Snake, ou les contours actifs en général.

    Un contour ca segmente l'image en 2 parties (intérieur et extérieur au contour).
    Un watershed ca segmente l'image en N parties (régions).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #140
    Membre éclairé

    Inscrit en
    janvier 2008
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : janvier 2008
    Messages : 691
    Points : 394
    Points
    394

    Par défaut

    Effectivement ca n'a pas trop le même rapport.

    Je demandais ca car le snake de opencv ne fonctionne pas tres bien si on ne lui donne pas des images simple d'ou l'idée de lui passer une image nikel.(mais dans ce cas à quoi sert le snake^_^)

    PS: Ce qui est dommage avec l'exemple de ton code en java c'est qu'on ne peut pas placer les points initiaux.

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
  •