|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
comme demandé, je pose ma version des Haralick's Features. Elle est esentiellement basée sur le code de PseudoCode avec quelques éléments supplémentaires : - On peux modifier la taille de la matrice de co-occurence. Sachez qu'il est souvent maladroit d'utiliser une matrice de co-occurence de 256. Dans la référence que je donne il est expliqué qu'il vaut mieux réduire le nombre de couleur avant de pratiquer cette analyse. - J'avais des définitions différentes. - Il y a en plus, la moyenne, l'inertie, une deuxième définition du contraste, la dissimilarité. - Pour ceux qui pensent que l'énergie n'est pas implémenté, sachez qu'elle et égale à l'ASM. J'avais moi aussi un problème de classification de texture et je l'ai résolu à 85% en utilisant toutes ces caractéristiques. ATTENTION : cette classe utilise ma propre bibliothèque d'image => la méthode getPix(Y,X) !!!! je demande Y puis X, alors que dans la version de PseudoCode c'est l'inverse. Code java :
__________________
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
|
|
|
#2 |
|
Invité régulier
![]() Inscription : mai 2008 Messages : 18 ![]() |
Bonjour,
merci pour ton code. Aurais-tu un lien vers la thèse que tu as mis en référence? Merci d'avance. |
|
|
00
|
|
|
#3 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
__________________
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 régulier
![]() Inscription : décembre 2007 Messages : 124 ![]() |
Hello ToTo,
J'utilise ton code et en suis trés satisfait. Merci donc J'ai par contre une question concernant le feature "moyenne" (ou F0) que tu extrais, a quoi correspond il ? j'ai l'impression que tu ne fais que compter le nombre de coocurrence divisée par le nombre de case de la matrice de coocurrence. Code :
![]() Bye |
||
|
|
00
|
|
|
#5 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
oui effectivement, c'est bizarre. Il vaudrait mieux diviser par le nombre de cases non nulles de la matrice.
__________________
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
|
|
|
#6 |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 124 ![]() |
Effectivement ca aurait plus de sens (comment pourait s'appeler cette "moyenne" ?)
Une autre remarque concernant les features : Le second moment angulaire (ASM - F1 ici) et l'inertie (F14) sont toujours parfaitement corrélés (vecteurs colinéaires). Il n'est donc pas judicieux d'utiliser ces deux variables, pour ma part je me contenterai de l'ASM. voila pour ma petite contribution... Peut etre que je mettrai un plugin ImageJ de segementation par texture utilisant ce code prochainement... A+ |
|
|
00
|
|
|
#7 | ||
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Citation:
Citation:
Je viens de vérifier mes résultats de thèse et la corrélation était très faible, mais absolument pas colinéaire. En regardant la forme de ces indices, il est d'ailleurs très étonnant que cela puisse l'être. Sur quel types de texture appliques tu ces caractéristiques ? Merci pour tes remarques
__________________
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
|
|
|
#8 |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 124 ![]() |
Autant pour moi je me suis trompé de features :
la corrélation que j'observe est entre le F2 (contraste) et F14 (inertie). je les ai extraits sur au moins 10 textures de base de Brodatz et j'obtiens toujours cette colinearité. Je ne pense pas me tromper, observes tu les memes resultat ToTo ? |
|
|
00
|
|
|
#9 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
oui, effectivement. Je viens de faire une analyse multi-variée avec JMP sur ces deux indices et ils sont colinéaires. Vu que dans le premier il y a un carré sur n et dans le deuxième une différence entre i et j, c'est plutôt surprenant :-( Le contraste fait parti des caractéristiques Haralick citées dans l'article original. L'inertie était utilisée dans un article beaucoup plus vieux (et visiblement mauvais :s). Je te conseille donc de supprimer l'inertie.
__________________
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
|
|
|
#10 |
|
Membre régulier
![]() Inscription : décembre 2007 Messages : 124 ![]() |
c'est noté
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Majed oualha Inscription : mars 2010 Messages : 14 ![]() |
svp je suis débutant en Java comment importer imagetiti
|
|
|
00
|
|
|
#12 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
imagetiti était une vieille classe à moi, peu optimisée. Je te conseille plutôt d'utiliser les BufferedImage ou une classe de ta création.
__________________
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
|
|
|
#13 |
|
Invité régulier
![]() Majed oualha Inscription : mars 2010 Messages : 14 ![]() |
merci mais quel est le rôle de cette classe?
|
|
|
00
|
|
|
#14 |
![]() ![]() Guillaume Ingénieur de Recherche Inscription : janvier 2006 Messages : 4 780 ![]() |
Bonjour,
en fait imagetiti est un package qui contient une classe Image (perso) et quelques autres classes réalisant diverses opérations. La classe Image contient un simple tableau (contenant les valeurs des pixels) et des informations basique (height, width, etc.). Pour être générique, je te conseille de travailler des image de type BufferedImage qui sont proposées par java dans le package java.awt.
__________________
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
|
|
|
#15 | ||||
|
Futur Membre du Club
![]() Inscription : octobre 2006 Messages : 58 ![]() |
Bonjour,
En fait, je ne comprends pas pourquoi dans le code java, il y a deux façons différentes de coder la moyenne. D'un côté il y a (où on doit modifier MSIZE pour les raisons que j'ai lu à la suite du post): Code :
Code :
moyenne = somme { p(i,j) * i } p(i,j) doit représenter la densité de probabilité. Qu'est ce que c'est au juste. Est ce que p(i,j)=probabilité=densité de probabilité? Merci par avance |
||||
|
|
00
|
|
|
#16 | |||
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 815 ![]() |
Citation:
p(i,j) = probabilité d'avoir "i" a coté de "j" Le calcul de la moyenne est correct dans les deux formules: Code :
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|||
|
00
|
|
|
#17 |
|
Membre actif
![]() Inscription : mars 2008 Messages : 209 ![]() |
HARALICK a proposé quatorze paramètres descriptifs des textures à partir des matrices de cooccurrence, les paramètres les plus fréquemment utilisés sont : homogénéité , homogénéité locale , entropie , uniformité , directivité , contraste ,corrélation,les moments et moyennes
d'espace, les paramètres géométriques, fractals et les paramètres inter-régions |
|
|
00
|
|
|
#18 |
|
Futur Membre du Club
![]() Inscription : octobre 2006 Messages : 58 ![]() |
Bonjour,
Merci PseudoCode. Par contre, ça me semble bizarre que matrix[i][j] est utilisé dans les 2 formules. Car d'après, ToTo13 l'élément matrix[i][j] est déjà une probabilité, il ne peut donc pas l'appliquer dans la première formule. Sinon, j'aurais une question dans le lien suivant qui se trouve dans le code java: http://murphylab.web.cmu.edu/publica...nd_node26.html Il y a une multitudes de formules qui sont calculés à partir de la matrice de cooccurence. Ce que je voudrais savoir c'est ce qui d'une part différencie mux et muy, car moi je le comprends comme quoi c'est la moyenne. Est ce que c'est deux moyennes différentes? Puis j'aimerais savoir aussi si les variance sigmax et sigmay sont différentes. De même, je voudrais savoir ce que traduit la corrélation sur une image. Je vous remercie par avance |
|
|
00
|
|
|
#19 | ||
![]() ![]() 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
|
|
|
#20 | ||||||||
|
Futur Membre du Club
![]() Inscription : octobre 2006 Messages : 58 ![]() |
Bonjour,
Merci pour réponse. J'ai compris que que le calcul de ToTo13 s'applique donc uniquement pour des matrices symétriques. Donc pour véritablement avoir des formules pouvant s'appliquer sur une matrice quelconque, il faudrait alors changer la formule de la moyenne: Code :
J'ai essayé de trouver la formule pour une matrice quelconque. J'ai pensé à appliquer la formule suivante en reprenant les notations de ToTo13. Code :
De même, je ne sais pas comment calculer les moyennes mux et muy. Mon idée est de faire mux=1*p(1,j)+...+i*p(i,j)+...n*p(n,j) et pour muy=1*p(i,1)+...+j*p(i,j)+...n*p(i,n) pour tenir compte des probabilités marginales J'ai pensé à faire ceci pour mux par exemple: Code :
Code :
Je vous remercie par avance. |
||||||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com