Bonsoir,
Où puis-je télécharger les images IRM, ci-jointes, représentant le crâne d'un cerveau humain, afin de faire une segmentation ? Car celles-ci, je les ai récupérées d'un document pdf !
Bonsoir,
Où puis-je télécharger les images IRM, ci-jointes, représentant le crâne d'un cerveau humain, afin de faire une segmentation ? Car celles-ci, je les ai récupérées d'un document pdf !
MATLAB Version 7.13.0.564 (R2011b)
Microsoft Visual studio 2010
LabView 2013 service pack1
C'est normal que ce soit toujours avec des mauvaises résolutions (ça tient à chaque fois sur un timbre poste) ? C'est les appareils qui ne peuvent pas faire mieux ?
Je ne répondrai à aucune question technique en privé
http://www.med.harvard.edu/AANLIB/home.html
Le format DICOM n'est pas spécialement fait pour stocker des grandes images... Quand en plus on sait que les transmissions de données se font encore par ligne série, ca n'incite pas a stocker des images hautes résolutions.
Brain image
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
disons que je suppose que c'est pour la publication..
Sur les machines, les images sont au minimum de 512*512, et souvent de 2500*2500...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
-> Ces images-là, est-ce qu'elles sont prêtes à être utilisées (segmentées) ou bien elles nécessitent une phase de prétraitement (filtrage) ?
-> Sous quel format d'image, faut prendre ces images ?
-> Est-ce que je peux exploiter directement ces images en chargeant une dans une matrice d'entiers int image[MAX_HAUTEUR][MAX_LARGEUR] ou bien elles sont comprimées et comment charger une image ?
Ce sont des images au format PNG:
http://www.med.harvard.edu/AANLIB/cases/caseNA/gr/axl
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
euh..
Deja suffit de la lire dans des bytes (des char en C), car en general sur 8 bits...
D'autre part la libpng devrait contenir toutes les routines necessaires....
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Me voici de retour...
J'ai lu l'article segmentation en régions, et je voudrais appliquer la méthode croissance de régions pour segmenter les images en niveaux de gris disponibles ici : http://www.med.harvard.edu/AANLIB/cases/caseNA/gr/axl
Est-ce que l'algorithme proposé est complet ? Et est-ce que cette méthode procure de bons résultats ?
Aidez-moi s'il vous plaît !
L'algorithme proposé est très basique mais il est fonctionnel.
Voila ce que donne l'algo proposé avec l'image 080.pngEt est-ce que cette méthode procure de bons résultats ?
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
En ce qui concerne l'étape de croissance de régions, il faut bien calculer le critère de similarité, dans notre cas c'est une image en niveaux de gris. Donc, est-ce qu'on va :
1- Comparer la valeur du pixel choisi comme seed avec celle de son voisin (voisinage 8 bien entendu) et dans ce cas-là comment déterminer le seuil ou bien le fixer arbitrairement (en tous les cas, pour ces images-là) ?
2- Ou bien, calculer la similarité entre la valeur de la région en cours de croissance avec celle du pixel voisin du pixel seed ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 si (différence(pixelSeed, pixelVoisin) < seuil) alors les deux pixels seront considérés similaires
3- Ou bien, fixer le seuil à zéro si j'ai bien compris sur cette page (ligne 221) : https://jaistuff.dev.java.net/code/a...onGrowing.html ?
Généralement on prend la méthode 2, c'est plus résistant au bruit.
Pour le calcul du seuil, le plus efficace c'est de le fixer manuellement (bref faire des essais). Sinon on peut tenter de l'estimer a partir de l'image (trace de la matrice de covariance, caracteristiques d'Haralick, ...)
ici le seuil est a zero car les images sont binaires (noir&blanc).3- Ou bien, fixer le seuil à zéro si j'ai bien compris sur cette page (ligne 221)
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Pour le critère de similarité entre la région courante et le pixel voisin, est-ce qu'il faudra maintenir la somme des couleurs des pixels de la région et au moment du test avec le pixel voisin il faudra diviser par leur nombre ?
Est-ce correct ça ? Mais on ne risquera pas de dépasser la valeur maximale du type entier si on maintient pour chaque région la variable sommeCouleur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sommeCouleur = pixel1 + pixel2 + ... Sans diviser par leur nombre ! couleurRegion = sommeCouleur / nombrePixels; si (différence(couleurRegion, couleurPixelVoisin) < SEUIL) alors ...
Normalement, l'intérêt de sommeCouleur intervient dans le recalcul de la nouvelle couleur moyenne de la région !
Tout mon problème est comment recalculer la couleur moyenne de la région après l'ajout d'un nouveau pixel ?
Ou bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part couleurMoyenneRegion = (sommeCouleur + couleurPixelAAjouter) / nombrePixels + 1;
Lequel de ces deux codes est correct ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 couleurMoyenneRegion = ((couleurMoyenneRegion * nombrePixels) + couleurPixelAAjouter)) / nombrePixels + 1;
J'aimerais bien savoir comment avez-vous dessiné les contours des régions car logiquement dans la méthode de croissance de régions on n'aura pas les contours !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 structure region { int nombrePixels, couleurMoyenneRegion; double residu; } ajout d'un pixel: double total = (couleurMoyenneRegion * nombrePixels) + residu + couleurPixelAAjouter; nombrePixels= nombrePixels+1; couleurMoyenneRegion = (int)(total/nombrePixels); residu=total-couleurMoyenneRegion*nombrePixels;j'ai juste dessiné en rouge les pixels à la frontiere de 2 régions.J'aimerais bien savoir comment avez-vous dessiné les contours des régions car logiquement dans la méthode de croissance de régions on aura pas les contours !
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Donc, ni l'un ni l'autre ! Merci.
Pourriez-vous me donner de plus amples explications !
Car je devrai montrer l'exécution de mon programme en exhibant les différentes régions constituant l'image : est-ce qu'il est préférable de colorer chaque région extraite par une couleur ou bien faire comme vous en dessinant les frontières entre les régions voisines, dans ce cas je ne sais pas trop comment faire ?
Dans les articles traitant de la segmentation, ils dessinent souvent les frontières au lieu de colorer chaque région à part (cf. pièce jointe) !
si, c'etait ta 2eme méthode. Celle que j'ai donnée est juste un poil plus precise car on garde le "résidu" de la partie entiere.
C'est très complexe... Non, je plaisante !Car je devrai montrer l'exécution de mon programme en exhibant les différentes régions constituant l'image : est-ce qu'il est préférable de colorer chaque région extraite par une couleur ou bien faire comme vous en dessinant les frontières entre les régions voisines, dans ce cas je ne sais pas trop comment faire ?
Une fois que tu as la carte des regions, tu parcours chaque pixel de la carte: si un des pixels voisin n'est pas dans la meme region que le pixel courant, alors le pixel courant est a la frontiere d'une region. Et donc, on colore en rouge ce pixel sur l'image d'origine.
Oui, c'est parceque le but de la segmentation c'est quand meme de séparer des regions de l'image d'origine, et pas de faire du coloriage.Dans les articles traitant de la segmentation, ils dessinent souvent les frontières au lieu de colorer chaque région à part (cf. pièce jointe) !
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Comment puis-je savoir si mes images sont bien segmentées, car vous savez que l'étape de segmentation est cruciale pour la suite... Ci-joint les images segmentées 079.png et 080.png avec un seuil de 128 !
Sur quelle base, je vais changer le seuil afin d'obtenir une segmentation convenable ?
Avec la première image (079.png), j'obtiens 115 régions et avec la deuxième (080.png), 97 régions !
La définition de "convenable" est très subjective.
Un bon point de départ, c'est de faire une analyse statistique des régions trouvées (variance, entropie, ...). Bien sur, ca oblige de choisir des seuils d'acceptation pour ces informations statistiques, donc ca repousse le problème.
Cela dit, il est plus simple de choisir un seuil statistique qu'un seuil de niveau de gradient.
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Désolé pour le mauvais choix du terme !
Je n'ai pas bien compris ce que tu voulais dire, car je ne vois pas comment intégrer dans mon algorithme un seuil statistique ?
Au fait, après cette étape de segmentation, je vais calculer des attributs de morphologie et texture sur les régions : surface, compacité, niveau de gris moyen, variance, élongation, continuité et homogénéité. Ces attributs vont détecter la présence d'une tumeur et spécifier sa nature.
Article [html]: interprétation des images médicales... (page 4 : 5. Résultats expérimentaux)
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