|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Voici un petit programme Java qui calcule quelques caracteristiques d'Haralick sur la matrice de co-occurence.
Un exemple d'applet interactif (qui n'utilise pas du tout ce code) est dispo sur ce site. Code java :
Voici un résumé des formules utilisées:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() |
Bonjour à vous,
Je viens de lire ce code, et il y a quelques points pour lesquels j’aurai besoin d’éclaircissement : Tout d’abord la matrice de cooccurrence appelée Matrix dans ce code. Je pensais que : Matrix ( i , j ) représente le nombre d’occurrence des pixels i et j l’un à coté de l’autre, d’ailleurs, c’est ce qui a été calculé au départ, mais ensuite il y a eu étape de normalisation que je ne comprends pas. Pourquoi diviser cette matrice par la somme de ses éléments ? La matrice de cooccurrence par définition, est ce bien le résultat de la méthode MatrixCompute (après normalisation) ? J’ai essayé de rédiger les formules des paramètres, selon ma compréhension du code,pour mon cas je n’ai fais aucune optimisation de la matrice,c'est-à-dire qu’elle contient 256 lignes et 256 colonnes selon les niveau de gris de 0 à 255. Pouvez vous me dire si les formules suivantes sont mathématiquement correctes : Merci d'avance.
__________________
« 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!!» |
|
|
00
|
|
|
#3 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
M(i,j) est le nombre d'occurrence de couple de pixel de valeur (i,j) situé à une distance d. Ce n'est pas forcément cote à cote. Dans ce code, il s'agit des pixels situé à une distance (0,1), (1,1), (1,0) et (-1,1). Ensuite, il ne faut pas travailler avec des matrices de taille égales au nombre de niveaux de gris de l'image. Il faut diminuer le nombre de couleur afin d'atténuer l'influence du bruit. En général des niveaux de gris de l'image de 16, 32 ou 64 apportent des résultats intéressant. Mais il faut souvent faire des tests en fonctions du type de problème pour trouver le nombre de niveaux de gris optimal. Pseudocode a directement programmé les formules qu'il a donné. Si tes formules sont différentes des siennes, alors c'est que t'es trompé
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots ! - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS. - Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci) - ton poste tu dois marquer quand la bonne réponse tu as obtenu.
|
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() |
Citation:
Citation:
Un petit agrandissement PseudoCode ? Et je ne comprends pas la forumule du paramètre f3 : f3=...(i j) p(i,j)-Vx*Vy... PS: Auriez vous un lien qui donne une description de chacun des 14 paramètres d'Haralick ?
__________________
« 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!!» |
||
|
|
00
|
|
|
#5 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
µ = ![]() variance = ![]() Citation:
=
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
00
|
|
|
#6 | |
|
Membre expérimenté
![]() |
Citation:
F1 = 0.09 (Homogénéité) F2 = 1.23 (Constraste) F3= 0.01 (Corrélation) F4=3.76 !(Entropie) Je m'interroge surtout sur les valeurs de f2 et f4 étant supérieurs à 1...Il est possible qu'elles soient correctes à votre avis? Je voudrai aussi savoir comment interpréter ces résultats? Pour l'homogénéité je pense qu'elle est égal à 1 si l'image ne contient qu'un seul niveau de gris,donc plus on a une grande surface de même niveau de gris dans l'image et plus f1 tend vers la valeur 1....Mais concernant les autres paramètres je n'ai aucune idée sur comment les interpréter!
__________________
« 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!!» |
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
||
|
00
|
|
|
#8 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
je suis entièrement d'accord avec la dernière phrase de Pseudocode. En data mining, il est extrêmement rare de trouver des variables que l'on puisse utiliser pour discriminer directement des individus. C'est pour cette raison que l'on construit des modèles plus ou moins complexes. A ce moment là, certains paramètres d'évaluation comme le Chi2 te donneront l'importance d'une variable dans le modèle. Toutefois, si tu souhaites absolument une interprétation graphique du rôle de chaque variable, tu peux utiliser la fonction "Fit Y by X" de JMP.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots ! - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS. - Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci) - ton poste tu dois marquer quand la bonne réponse tu as obtenu.
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 4 ![]() |
Bonjour,
je me pose exactement les mêmes questions existentielles au sujet de la différence de grandeur entre les valeurs de certaines caractéristiques très petites et, effectivement, d'autres bien supérieures à 1. Si vous voulez classifiez des images (ex : textures) en fonction de leurs caractéristiques de Haralick, quelle métrique utilisez-vous si vous ne pouvez faire aucun a-priori sur la valeur que prendra telle ou telle caractéristique , pour telle ou telle image ? (par exemple trier des images au fur-et-à-mesure de leur arrivée ?). |
|
|
00
|
|
|
#10 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
Par exemple on calcule les caractéristiques d'un groupe d'image A et on étudie la distribution des caractéristiques (min, max, moyenne, ecart-type, ...). On fait la meme chose avec un groupe d'image B. Quand une "nouvelle" image doit être classifiée, on calcule ses caractéristiques et on regarde si on est dans l'intervalle de confiance du groupe A, ou du groupe B, ou aucun des deux groupes.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 4 ![]() |
ok, je fais fausse route alors.
je cherche à comparer la "pertinence" de certains indicateurs/caractéristiques/coefficients (features) avec ceux de Haralick. pour cela je calcule les indicateurs de plusieurs images qui se répartissent en quelques classes (connues), je considère qu'une image correspond à un vecteur d'indicateurs et je calcule le rapport inertie inter / inertie intra : d'un côté pour ceux de Haralick, de l'autre pour les "miens". mais calculer l'inertie inter et intra, c'est se baser sur une norme euclidienne qui accorde la même importance à tous les indicateurs ... |
|
|
00
|
|
|
#12 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
Pour ma part, j'ai de meilleurs résultats en faisant comme je l'ai dit précédemment.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : avril 2009 Messages : 4 ![]() |
merci tout d'abord pour la rapidité des réponses !
oui, j'imagine bien qu'avec des méthodes sophistiquées on obtient de bons résultats, ... mon souci c'est que j'ai besoin de quelque chose d'assez "simple" juste pour évaluer la pertinence de caractéristiques (Haralick vs Autres), plusieurs fois. simple à expliquer, et simple à mettre en oeuvre. (donc les inerties, j'avoue, c'était assez pratique). Est-ce qu'il y aurait donc une solution "intermédiaire" ? pour ma part je dois en rester là pour aujourd'hui.. merci encore et bonne soirée |
|
|
00
|
|
|
#14 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#15 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Inscription : août 2009 Messages : 2 ![]() |
Bonjour, dslé pour la réponse tardive. Plusieurs articles de recherche ont montré que la normalisation des vecteurs d'attributs pour la classification SVM produirait d'une part des modèles d'estimation plus performant et d'autre part accélèrerai la convergence de l'algorithme. |
|
|
00
|
|
|
#17 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#18 |
|
Membre du Club
![]() R. Rmaster de recherche Inscription : mai 2010 Messages : 32 ![]() |
Salut a tous
j'ai un problème avec ce code Code :
(int)(MSIZE*this.image.getValue(x0,y0)/256.0); |
|
00
|
|
|
#19 | |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
image.getValue(x,y) renvoie simplement la valeur d'intensité du pixel de coordonnées (x,y).
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
|
00
|
|
|
#20 |
|
Membre du Club
![]() R. Rmaster de recherche Inscription : mai 2010 Messages : 32 ![]() |
oui on fait j'ai besoin de récupérer la valeur d'intensité du pixel de coordonnées (x,y). mais ça marche pas
|
|
00
|
Copyright © 2000-2013 - www.developpez.com