bonjour!!
quelqu'un aurait t'il des renseignements sur la distance de mahalanobis?
bonjour!!
quelqu'un aurait t'il des renseignements sur la distance de mahalanobis?
en 2 2 m'a sorti plein de trucs comme cet algo pour la calculer :
et tout plein de truc de math, tiens Ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
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
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.
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!
Partager