bonjour!!
quelqu'un aurait t'il des renseignements sur la distance de mahalanobis?
Version imprimable
bonjour!!
quelqu'un aurait t'il des renseignements sur la distance de mahalanobis?
:salut:
:google: en 2 2 m'a sorti plein de trucs comme cet algo pour la calculer :et tout plein de truc de math, tiens Ici :DCode:
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 % Algorithme / méthode distance de Mahalanobis moy1b = moy1; moy2b = moy2; moy3b = moy3; N = 10; n1 = 0; n2 = 0; n3 = 0; nc1 = []; nc2 = []; nc3 = []; for i = 1:N n1b = 0; n2b = 0; n3b = 0; moy1b = [0 0 0]; moy2b = [0 0 0]; moy3b = [0 0 0]; for j = 1:l1 d1 = (X(j,:)-moy1)*inv(cov1)*(X(j,:)-moy1)'; % distance de Mahalanobis au centre de la classe 1 d2 = (X(j,:)-moy2)*inv(cov2)*(X(j,:)-moy2)'; % distance de Mahalanobis au centre de la classe 2 d3 = (X(j,:)-moy3)*inv(cov3)*(X(j,:)-moy3)'; % distance de Mahalanobis au centre de la classe 3 if ((d1<=d2) & (d1<=d3)) moy1b = moy1b + [X1(j) X2(j) X3(j)]; n1b = n1b+1; % Nombre d'individus classes dans 1 elseif ((d2<=d1) & (d2<=d3)) moy2b = moy2b + [X1(j) X2(j) X3(j)]; n2b = n2b+1; elseif ((d3<=d1) & (d3<=d2)) moy3b = moy3b + [X1(j) X2(j) X3(j)]; n3b = n3b+1; end end moy1 = moy1b/n1b % Nouvelle moyenne classe 1 moy2 = moy2b/n2b % Nouvelle moyenne classe 2 moy3 = moy3b/n3b % Nouvelle moyenne classe 3 nc1 = [nc1 abs(n1-n1b)] % Nombre de changements pour la classe 1 nc2 = [nc2 abs(n2-n2b)] % Nombre de changements pour la classe 2 nc3 = [nc3 abs(n3-n3b)] % Nombre de changements pour la classe 3 n1 = n1b n2 = n2b n3 = n3b end
[url modifié par Gangsoleil car trop longue]
pour info, quel est l'usage en 3 mots ?
elle permet de calculer la distance entre 2 points de 2 images différentes pour pouvoir déterminer si les images sont les mêmes (approximativement.
PS : pense à mettre http://www.developpez.be/forums/images/resolu.gif si ton pb est résolu :wink:
bien sur mais mon problème n'est pas résolu, le code n'est pas très clair...
je dois utiliser la distance de mahalanobis pour déterminer la distance entre 2 points de 2 images différentes et je crois que ce programme ne fait pas ça du tout
Mais tu n'as rien trouvé d'interessant sur le lien que je t'ai donné :?:
voila la formule:
la matrice de covariance utilisée dans la formule est elle différente pour chaque i si oui comment la trouver???
Salut je travaille sur de la ségmentation d'image et je développe en ce moment un algo de comparaison d'histogramme (H et S). J'ai implémenté différent type de calcul de distance mais je désirerais tester la distance mahalanobis. Je ne comprend pas très bien les différents sites ou c'est expliqué et ça a l'air d'etre un calcul très lourd au niveau temps proc!quelqu'un qui l'aurait déjà implémenté pourrait-il m'aider?
Merci d'avance
Citation:
Envoyé par jt_artzak
effectivement, le calcul est assez lourd et surtout compliqué si la structure de données à traiter n'est pas parfaitement adaptée...
perso, à l'époque j'avais abandonné ce calcul très coûteux, car des méthodes plus simples me donnaient entière satisfaction...
par exemple, essaies de calculer une distance Ln avec un n >= 3 ; et d'augmenter le n pour affiner ;)
gorgonite a raison, les Ln grands sont meilleurs sur la comparaison d'images.
J'ai implémenté la distance de mahalanobis une seule fois: pour la décomposition en stack de vraissemblance de 2 séries probabilistes mal corrélées.
Citation:
Envoyé par Nemerle
LOL tu me parle chinois toi!!!
En effet plus je me plonge dans le calcul de distance de mahalanobis et plus je me noye. En effet je ne vois pas comment implémenter un algo d'inversion de matrice "a la mano" car je dev sous delphi.
Alors qu'en est-il de la distance de BHATTACHARYYA utilisé dans la comparaison d'histogramme dans la lib OpenCV?
Sinon je code l'api OpenCV en delphi et j'utilise ces fonctions sur les histogrammes?!?
Pouvez me parler un peu plus des "Lm"? ou avez vous un lien qui me permettrait de l'étudier.
Merci d'avance!
distance Ln dans le plan
L2 = distance euclidienne ;)Code:(x^n + y^n)^(1/n)
je ne connais pas la distance de BHATTACHARYYA... si tu trouves quelque-chose, passe l'info ! ;)
http://en.wikipedia.org/wiki/Bhattacharyya_distanceCitation:
Envoyé par Nemerle
Pour la distance de battcha... machin truc, une fonction de OpenCV (lib gratuite dév par intel de traitement de l'image et plein d'autres trucs) l'utilise mais bien entendu on n'accède pas à l'algo.C'est simplement une option.
Sinon pour la distance des Ln vous etes sur c'est :
[X(a,b)^n + Y(a,b)^n]^(1/n)
et pas :
[X(a,b)^n - Y(a,b)^n]^(1/n)
c'est une différence que je cherche à relever...:roll:
je parlais de la distance à l'origine dans mon exemple ;)
d((x1,y1),(x2,y2)) = (|x1 - x2|^n + |y1 - y2|^n)^(1/n)
ok merci!
Sinon je passe pas le poste en résolu, on sait jamais qu'un développeur se pointe et dise miracle j'ai fait une implémentation qui fonctionne sur du temps réel de calcul de différence de mahalanobis...on peut toujours y croire!;)
bonjour a tous,
j'ai 3 classes ds une image il y des pic qui on n'apparient pas a ces classes il faut qu'il l'apparient a ces classe mais apartir de determination des distance minimal pour cela je vais utiliser distance euclidienne & distance Mahalanobis
et les comprer les resultat
mais je ,ne connais aucun distance parmi eux sous matlab
existe t-il une fonction pour le calculer ou bien il existe un algorithme a suivre??????????
merci d'avance