Merci mais j'ai pas compris : " la forme du gradient est une courbe en S "
Est ce que vous pouvez me donner un exemple sous forme d'une image ou quelque chose pour que je puisse bien comprendre, merci beaucoup d'avance .
Merci mais j'ai pas compris : " la forme du gradient est une courbe en S "
Est ce que vous pouvez me donner un exemple sous forme d'une image ou quelque chose pour que je puisse bien comprendre, merci beaucoup d'avance .
Expliquer les valeurs propres avec un dessin, ça va pas être évident.
Disons que les 2 valeurs propres de la matrice de Harris représentent les 2 diamètres de l'ellipse qui "colle le mieux" à la courbe du gradient. Ces 2 diamètres sont des grandeurs orientées (= direction + longueur).
A gauche : dans le cas d'un "bord", on obtient une ellipse aplatie. La mesure de Harris sera très faible car l'un des deux diametrès est beaucoup plus petit que l'autre.
Au milieu : dans le cas d'un "coin", on obtient une jolie ellipse ronde. La mesure de Harris sera grande car les deux diamètres sont sensiblement de la même taille, et elle sera positive car l'ellipse est "ronde".
A droite : dans le cas d'un "S", on obtient une ellipse croisée (forme de huit).La mesure de Harris sera grande car les deux diamètres sont sensiblement de la même taille, mais elle sera NEGATIVE car l'ellipse est "croisée".
vous méritez quelque chose pour votre effort , encore merci.
d'après l'explication :
si h<0 alors on est dans le premier cas ( diamètre plus grand que l'autre)
ou dans le 3ème cas ( forme S )
bonjour pseudocode , j'espére que vous ête bien.
j'ai les dernière question concernant l'algo HARRIS-FAST
Question 1 : Si j'ai bien compris d'aprés le code :
//isSpatialMaxima(int[][] hmap, int x, int y)
int n=8;
int[] dx = new int[] {-1,0,1,1,1,0,-1,-1};
int[] dy = new int[] {-1,-1,-1,0,1,1,1,0};
double w = hmap[x][y];
for(int i=0;i<n;i++) {
double wk = hmap[x+dx[i]][y+dy[i]];
if (wk>=w) return false;
}
on a qu'une seule chance d'avoir un point d'interêt dans chaque
voisinage de 8 ?
Question 2 :
d'aprés le code de la fonction : public int[][] filter(int window, double sigma, int minMeasure, int minDistance) {....}
window : c'est la taille de la fenetre du voisinage . ok
minMeasure : c'est la distance minimale entre deux points d'interêt . ok
----------------------------------------------------------------------
minMeasure : c'est quoi son rôle ?, comment choisir la meilleur valeur ?, que se passe t-il lorsqu'on change sa valeur ?
sigma : c'est quoi son rôle ?, comment choisir la meilleur valeur ?, que se passe t-il lorsqu'on change sa valeur ? merci .... .
Oui. Je considère qu'un point est un maximum local s'il est plus grand que ses 8 voisins.
Je suggère de relire mon post #20, afin d'utiliser une valeur en pourcentage, plutot qu'une valeur absolue comme c'est la cas dans le code actuel.minMeasure : c'est quoi son rôle ?, comment choisir la meilleur valeur ?, que se passe t-il lorsqu'on change sa valeur ?
En fait, ce paramètre est le "sigma²" (au carré) de la gaussienne. Ce paramètre fait varier les poids de la moyenne pondérée. On peut dire que ca revient a aplliquer un "flou" plus ou moins fort à l'image, et donc à gommer le bruit eventuel sur l'image d'origine.sigma : c'est quoi son rôle ?, comment choisir la meilleur valeur ?, que se passe t-il lorsqu'on change sa valeur ? merci .... .
Ce paramètre doit être relié à la taille de la fenetre (window). En utilisant le calcul du FWHM, on peut trouver des règles empirques. Generalement je choisis:
sigma² = (window+2)/(4.71)
Conclusion, grace à vous j'ai compris le principe de detection de points d'interêt et comprendre votre algorithme.
Math.pow(Double.toString("merci")),10000000000000)
---------------------------------------------------------------------
Maintenant que j'arrive à detecter les points d'interêt dans les images,
supposons qu'on a deux images , comment faire une correspondance entre chaque point d'interêt de la première image avec le point d'interêt correspondant ( si il existe ) dans la deuxième image .
j'ai filtré google ,ce forum, autres forum, mais toujours le même résultat : aucune information sur les étapes à faire .
tu peux utiliser le voisinage de tes poits d'intérêts. tu en extrait des caractéristiques (couleurs, textures et formes). Ensuite il te faut parvenir a calculer des distances entre tes caractéristiques afin de dire si oui ou non les zones sont similaires...
mots clés:indexation d'image, caractéristiques bas-niveau
salut pseudocode
pour quoi ton code na marche pas sur mon eclipse ?
j'espere que je besoin d'un package (bibliothèque)
merci
Un petit message pour indiquer que j'ai posté le code d'un détecteur (minimaliste) de Harris-Laplace dans la contribution "pyramide gaussienne".
détecteur de Harris-Laplace
Bonjour,
Une petite question relative au plugin pour ij, quand on l'utilise, à quoi correspond le paramètre halfwindowsize qui est demandé ? Et à quoi sert il ?
Bonjour Pseudocode,
Dans l'algorithme HarrisLaplace, plus précisement, dans le calcul du laplacian :
1 : Pourquoi vous avez utilisé un voisinage de 4 pixels seulement : pixel au-dessus, au-dessous, gauche et droite.
2 : D'ou vient la formule :
Normalement, le Laplacien est calculé à partir de la deuxième dérivée gaussienne.float laplacian = -v11 + 0.25f*(v10+v01+v21+v12);
On prend le sigma2 de l'image courante, on calcul la convolution de l'image originale par la deuxième dérivée gaussienne de sigma2.
Merci
Dans la calcul de Harris :
1 : comment avez vous obtenu ce masque gaussien : {1,2,1},{2,4,2},{1,2,1}
Je n'ai pas besoin de prendre plus grand : c'est l'image qui change d'échelle et pas le masque du filtre qui change de taille.
La dérivée seconde d'une gaussienne est une LoG (Laplacian of gaussian), c'est à dire l'opérateur Laplacien appliqué a une gaussienne, que l'on peut utiliser directement sur l'image originale.2 : D'ou vient la formule :
Normalement, le Laplacien est calculé à partir de la deuxième dérivée gaussienne.float laplacian = -v11 + 0.25f*(v10+v01+v21+v12);
Dans mon cas, l'image est déjà convoluée par une Gaussienne, donc je peux utiliser directement l'opérateur Laplacien : Lap(f(x,y)) = d²f(x,y)/dx² + d²f(x,y)/dy² en approximant la dérivée seconde par la limite du taux de variation : d²f(x)/dx² = ( (f(x+h)-f(x)) - (f(x)-f(x-h)) )/h² pour h tendant vers 0. Comme on est dans le cas discret, on prend h=1.
[1,2,1] sont les coefficients binomiaux gaussien. En les appliquant verticalement puis horizontalement sur un pixel on obtient le masque 2D.Dans la calcul de Harris :
1 : comment avez vous obtenu ce masque gaussien : {1,2,1},{2,4,2},{1,2,1}
J'ai compris, merci.
2 dernières choses :
1 : Pourquoi vous vérifiez si la valeur absolue de harris et laplacian est inférieure à 1 ? ( ce n'est pas le cas de l'ancien detecteur HarrisFast).
2 : Est ce que le but de diviser la valeur de harris par 255*255 est de manipuler de petites valeurs ?
Merci pour votre aide.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager