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

Contribuez Discussion :

[Image] Détecteur de Harris pour ImageJ


Sujet :

Contribuez

  1. #81
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Ce n'est pas étonnant. Si l'image n'est pas normalisées (c'est à dire si les valeurs des pixels varient entre 0 et 255), alors la valeur des gradients Lx et Ly varient entre -255 et +255.

    Les termes de la matrice de Harris (Lx², LxLy, Ly²) varient donc entre -255^2 et +255^2.

    Et la mesure de Harris "(Lx²*Ly²-LxLy*LyLx) - k*(Lx²+Ly²)^2" peut être de l'ordre de +/- 255^4 ~= 4E+9


    Normalement ca ne pose pas de problème tant qu'on utilise des float/double.
    merci pseudocode
    alors je dois juste faire une normalisation des valeurs de la matrice mesure de harris R pour rendre les valeurs entre 0 et 255.



    et quand mon code détecte les points des cotés pour le triangle et le cercle est ce que c'est juste ? sachant que pour le carré il détecte uniquement les coins.

  2. #82
    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 azertyuio Voir le message
    merci pseudocode
    alors je dois juste faire une normalisation des valeurs de la matrice mesure de harris R pour rendre les valeurs entre 0 et 255.
    Ce n'est pas obligatoire. Tu peux conserver les valeurs non normalisées en les stockant dans des tableaux de double/float.

    et quand mon code détecte les points des cotés pour le triangle et le cercle est ce que c'est juste ? sachant que pour le carré il détecte uniquement les coins.
    Normalement, non. Sur un bord, la mesure de harris devrait être négative.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #83
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Ce n'est pas obligatoire. Tu peux conserver les valeurs non normalisées en les stockant dans des tableaux de double/float.
    okk


    Citation Envoyé par pseudocode Voir le message
    Normalement, non. Sur un bord, la mesure de harris devrait être négative.
    aah d'accord donc je dois ajouter un test si la valeur est négative je la détecte pas !!
    c'est à dire pour toutes les valeurs de R (la matrice de mesure de Harris) si la valeurs est négative je ne la détecte pas.
    c'est ça ?

  4. #84
    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 azertyuio Voir le message
    aah d'accord donc je dois ajouter un test si la valeur est négative je la détecte pas !!
    c'est à dire pour toutes les valeurs de R (la matrice de mesure de Harris) si la valeurs est négative je ne la détecte pas.
    c'est ça ?
    C'est ca.

    - Si la valeur est négative, c'est un bord => on ne marque pas le pixel
    - Si la valeur est nulle (ou très faible), c'est une zone homogène => on ne marque pas le pixel
    - Si la valeur est positive, c'est un coin => on marque le pixel !
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #85
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 151
    Points : 92
    Points
    92
    Par défaut
    merci infiniment pseudocode

  6. #86
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonjour Pseudocode

    STP : pourquoi harris utilise t il une gaussienne au lieu du filtre carré utilisé par moravec. en quoi ça va atténuer le bruit.

    j'ai lu que c'était question de distance mais je vois pas où est l apport de distance dans ce sujet

    pourriez vous nous donner une réponse analytique et détaillée

    Merci beaucoup

  7. #87
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    une autre question à pseudocode

    j'ai lu que harris était invariant à la rotation car lorsqu'on tourne la fenetre on garde les mêmes valeurs propres de la matrice M

    ds le lien suivant, on évoque que harris est sensible à la rotation du fait que seuls les gradients horizontal et vertical sont calculé, ce qui fait de lui moin anisotrropique que Moravec, ni + ni -
    (http://kiwi.cs.dal.ca/~dparks/Corner...ion/harris.htm)

    c'est quoi la vérité ?

  8. #88
    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 guelbe Voir le message
    Bonjour Pseudocode
    Bonjour

    pourquoi harris utilise t il une gaussienne au lieu du filtre carré utilisé par moravec. en quoi ça va atténuer le bruit.
    La convolution avec une gaussienne est équivalent a appliquer un filtre passe-bas sur l'image : les hautes-fréquences (changements brusques) sont atténuées. Visuellement, ca rend l'image floue.

    j'ai lu que c'était question de distance mais je vois pas où est l apport de distance dans ce sujet
    Je n'ai pas compris de quelle distance tu parles ?

    Citation Envoyé par guelbe Voir le message
    j'ai lu que harris était invariant à la rotation car lorsqu'on tourne la fenetre on garde les mêmes valeurs propres de la matrice M

    ds le lien suivant, on évoque que harris est sensible à la rotation du fait que seuls les gradients horizontal et vertical sont calculé, ce qui fait de lui moin anisotrropique que Moravec, ni + ni -
    (http://kiwi.cs.dal.ca/~dparks/Corner...ion/harris.htm)

    c'est quoi la vérité ?
    La vérité c'est que harris est "théoriquement" invariant à la rotation si on l'utilisait sur une image "continue". Dans la pratique, l'image est discrétisée (tableau de pixels). En conséquence deux images ayant subies une rotation ont rarement des pixels de même intensité, ce qui fausse le calcul du gradient.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #89
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci pr votre réponse
    pr la 1ere question, voici le lien qui parle de distance euclidienne:
    http://kiwi.cs.dal.ca/~dparks/Corner...on/moravec.htm

    voir STP partie:

    Noisy Response

    The window used by Moravec is square and binary. To achieve a more accurate estimate of the local intensity variation, a circular window is desirable so that the Euclidean distance from the center pixel to the edge of the window is the same in all directions...


    Pr la 2eme question:
    si g compris votre réponse, Harris est théoriquement invariant à la rotation mais pas pratiquement ??

    si c vrai, donc ils ont raison dans le lien
    http://kiwi.cs.dal.ca/~dparks/Corner...ion/harris.htm

    pourquoi donc laisse t on ds la littérature dire que Harris est invariant à la rotation ?

    Merci beaucoup, je vous suis reconnaissant

  10. #90
    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 guelbe Voir le message
    Noisy Response

    The window used by Moravec is square and binary. To achieve a more accurate estimate of the local intensity variation, a circular window is desirable so that the Euclidean distance from the center pixel to the edge of the window is the same in all directions...
    L'idée dans une analyse locale, c'est de prendre des pixels uniformément répartis autour du point considéré. (généralement, on prend tous les pixels dans le voisinage).

    Lorsqu'on prend un voisinage carré, la répartition n'est pas uniforme a cause des pixels qui sont dans les coins. Ces pixels dépendent de l'orientation du carré : on ne prend pas les mêmes pixels suivant que le carré est horizontal, ou tourné de 45°. Et donc, l'analyse locale ne se fera pas sur les même valeurs d'entrées => des résultats différents suivant l'orientation de la fenêtre, ce qui est équivalent à dire des résultats différents suivant l'orientation de l'image.

    En prenant une fenêtre circulaire ce problème disparait, car si on fait tourner un cercle on obtient le même cercle. Et donc on a toujours les mêmes données d'entrée pour la calcul, quelle que soit l'orientation de la fenêtre = quelle que soit l'orientation de l'image (*)


    (*) Au problème de discrétisation de l'image près.

    pourquoi donc laisse t on ds la littérature dire que Harris est invariant à la rotation ?
    La formulation mathématique du descripteur est invariante à la rotation. Ce n'est pas le cas de tous les descripteurs, c'est donc important de placer Harris dans la catégorie des descripteurs invariants à la rotation.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #91
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 2
    Points
    2
    Par défaut detecteur de harris sous maple
    bonsoir,
    Merci pseudocode pour la mise en application de cet algorithme mais j'ai quelques problèmes de compréhension du java ( j'essaie d'adapter le programme sous maple ).
    Je ne comprends donc pas comment est fixé le seuil ( w) qui fixé si une valeur est un coin ou pas, et je me demandais si pour prendre en considération aussi les contours il suffit de prendre les valeurs négatives de R(=detM -k(tr(M)^2) avec le même seuil w.
    Je me demandais si on pouvait travailler directement avec une image couleur et si le passage en niveaux de gris n'atténue pas la qualité du detecteur.
    Finalement, je me demandais plus generalement comment on peut procéder a la multiplication d'un lisseur ( ex lisseur horizental :[1,1,1] ) et d'une dérivée ( ex masque de Roberts 2 : [-1;0;1]) le résultat de l'exemple étant à une constante près [-1,-1,0,1,1]. L'idée étant d'améliorer ( ce que je ne comprends pas d'ailleurs, mais c'est secondaire ) le calcul des élèments de la matrice

  12. #92
    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 snoussix Voir le message
    Je ne comprends donc pas comment est fixé le seuil ( w) qui fixé si une valeur est un coin ou pas,
    De quelle valeur "w" vous parlez ? Le seul "w" que je vois c'est celui du test de maxima spatial.

    et je me demandais si pour prendre en considération aussi les contours il suffit de prendre les valeurs négatives de R(=detM -k(tr(M)^2) avec le même seuil w.
    Oui, si R est très négatif on est sur un bord.

    Je me demandais si on pouvait travailler directement avec une image couleur et si le passage en niveaux de gris n'atténue pas la qualité du detecteur.
    Effectivement, passer en niveau de gris (intensité) fait perdre de l'information et peut faire disparaitre certains coins. Pour gérer les images couleurs, il faut faire intervenir les 3 composantes R,V,B dans le calcul de la matrice de Harris (cf papier de P.Montesinos: "Differential invariants for color images").

    Finalement, je me demandais plus generalement comment on peut procéder a la multiplication d'un lisseur ( ex lisseur horizental :[1,1,1] ) et d'une dérivée ( ex masque de Roberts 2 : [-1;0;1]) le résultat de l'exemple étant à une constante près [-1,-1,0,1,1]. L'idée étant d'améliorer ( ce que je ne comprends pas d'ailleurs, mais c'est secondaire ) le calcul des élèments de la matrice
    Le filtrage se fait par un produit de convolution entre le filtre et l'image.

    Image_lissée = Lisseur * Image
    Image_finale = Dérivée * Image_lissée = Dérivée * ( Lisseur * Image )

    Par associativité du produit de convolution, on a:

    Dérivée * ( Lisseur * Image ) = (Dérivée * Lisseur) * Image

    C'est à dire qu'on peut commencer par calculer le produit de convolution des deux filtres, ce qui nous une donne un filtre "combiné" qu'on peut appliquer à l'image.

    FitreCombiné = Dérivée * Lisseur
    Image_finale = FitreCombiné * Image
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. [image] Filtre Squelette pour ImageJ
    Par pseudocode dans le forum Contribuez
    Réponses: 47
    Dernier message: 12/08/2013, 11h41
  2. [Image] Filtre UnNoise pour ImageJ
    Par pseudocode dans le forum Contribuez
    Réponses: 37
    Dernier message: 07/03/2008, 17h23
  3. [Image] Filtre de Canny pour ImageJ
    Par pseudocode dans le forum Contribuez
    Réponses: 18
    Dernier message: 13/09/2007, 20h01
  4. [Image] Filtre UnNoise pour ImageJ
    Par pseudocode dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 04/04/2007, 00h38
  5. Réponses: 20
    Dernier message: 19/12/2004, 19h52

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