4
Page | 1 TP de Traitem en t d ’Im ages M é d icale s Décembre 2006 Gwenaël Brunet & Laurent Lecornu D é p a rte m e n t Im age et Traitem e n t d e l’In fo rm atio n Ecole Nationale Supérieure des Télécommunications de Bretagne (ENSTB) Groupe des Ecoles des Télécommunications (GET) [email protected] , [email protected] Introduction Ce TP vous propose de directem entm ettre en œ uvre quelques concepts clefs de Traitem entd’Im ages N um ériques appliqués à diverses m odalités d’Im agerie M édicale.Ilesten prolongem entdirectdu TP Traitem entd’Im ages Numériques réalisé au cours de la deuxième année. L’objectifprincipalde ce cours estde vous faire appliquerquelques traitem ents de base surdes im ages sélectionnées, afin de mieux comprendre comment ils fonctionnent, à quoi ils servent, et également de les mettre en application en implémentant ces algorithmes dans un langage couramment utilisé dans le milieu. Rappels des principaux traitements Opérateurs linéaires Pourrappel,ces opérateurs sontim plém entés en effectuantune convolution d’un m asque surune l’im age traitée. Il existe différents masques, dont voici une partie : Passe-bas (flou) Filtre moyenneur Filtre gaussien 1/9 1/16 Passe-haut (contours) X Y Opérateur de Robert Opérateur de Prewitt Opérateur de Sobel Filtre Laplacien Opérateurs non linéaires Filtrage médian Le pixel étudié prend la valeur médiane de son voisinage. Par exemple : Tri: 16, 32, 55, 65, 76, 82, 100, 122, 150. Valeur médiane: 76. La valeur centrale 100 est donc remplacée par 76. Érosion Le pixel étudié prend la valeur minimale de son voisinage. Par exemple :

Tp Traitement Images Medicales

  • Upload
    z

  • View
    12

  • Download
    3

Embed Size (px)

DESCRIPTION

Tp Traitement Images Medicales

Citation preview

  • P a g e | 1

    TP de Traitem ent dIm ages M dicales

    Dcembre 2006

    Gwenal Brunet & Laurent Lecornu D partem ent Im age et Traitem ent de lInform ation

    Ecole Nationale Suprieure des Tlcommunications de Bretagne (ENSTB) Groupe des Ecoles des Tlcommunications (GET)

    [email protected], [email protected]

    Introduction Ce TP vous propose de directem ent m ettre en uvre quelques concepts clefs de Traitem ent dIm ages Num riques appliqus diverses m odalits dIm agerie M dicale. Il est en prolongem ent direct du TP Traitem ent dIm ages

    Numriques ralis au cours de la deuxime anne.

    Lobjectif principal de ce cours est de vous faire appliquer quelques traitem ents de base sur des im ages

    slectionnes, afin de mieux comprendre comment ils fonctionnent, quoi ils servent, et galement de les mettre en application en implmentant ces algorithmes dans un langage couramment utilis dans le milieu.

    Rappels des principaux traitements

    Oprateurs linaires Pour rappel, ces oprateurs sont im plm ents en effectuant une convolution dun m asque sur une lim age traite. Il existe diffrents masques, dont voici une partie :

    Passe-bas (flou) Filtre moyenneur Filtre gaussien

    1/9 1/16

    Passe-haut (contours) X Y

    Oprateur de Robert

    Oprateur de Prewitt

    Oprateur de Sobel

    Filtre Laplacien

    Oprateurs non linaires Filtrage mdian Le pixel tudi prend la valeur mdiane de son voisinage. Par exemple :

    Tri: 16, 32, 55, 65, 76, 82, 100, 122, 150. Valeur mdiane: 76. La valeur centrale 100 est donc remplace par 76.

    rosion Le pixel tudi prend la valeur minimale de son voisinage. Par exemple :

  • P a g e | 2

    Tri: 16, 32, 55, 65, 76, 82, 100, 122, 150. Valeur minimale : 16. La valeur centrale 100 est donc remplace par 16.

    Dilatation Le pixel tudi prend la valeur maximale de son voisinage. Par exemple :

    Tri: 16, 32, 55, 65, 76, 82, 100, 122, 150. Valeur maximale : 150. La valeur centrale 100 est donc remplace par 150.

    Note : il est coutum e dutiliser un enchanem ent des oprateurs drosion et de dilatation. Lorsque lon effectue une rosion suivie dune dilatation, on parle d Ouverture , et linverse, une dilatation suivie dune rosion, on parle de Fermeture .

    Autres traitements Contraste Le contraste seffectue par application dun coefficient m ultiplicateur au pixel tudi.

    Lorsque ce coefficient est suprieur 1, le contraste est augm ent, lorsquil est compris entre 0 et 1, le contraste est diminu.

    Seuillage Le seuillage consiste mettre zro (0) tous les pixels de niveau de gris infrieur un seuil (127 par exemple), et 255 ceux qui sont suprieurs. On obtient ainsi une image en noir et blanc, soit deux niveaux.

    Histogramme Lhistogram m e perm et dobtenir un graphique qui dcompte pour chaque valeur de niveau de gris, le nom bre doccurrences de pixel qui possde cette valeur. Exemple :

    Rappels de lapplication en langage C

    1. Caractristiques de base des images numriques Une image numrique est une matrice deux dimensions, reprsente du point de vue du langage C, par un tableau deux dimensions "[][]" (double crochets). Le prsent TP ne traitera pas de la gestion optimise proprement parler des images numriques, du point de vue de la mmoire. Nous conviendrons donc, que chaque image correspond un emplacement mmoire de taille prdterm ine (allocation de m m oire statique, par opposition lallocation de m m oire dynam ique).

    Dfinir une variable pour une im age seffectue par consquent de la faon suivante :

    unsigned char image[320][200];

    Cette prem ire dclaration perm et de construire une im age dune taille de 320 pixels par 200. Le type utilis, unsigned char , indique quil sagit dune im age dont chaque pixel est cod sur 1 octet, soit 8 bits. 8 bits permettent de coder 28 niveaux, soit 256 (valeurs comprises entre 0 et 255, 0 reprsentant le noir, et 255 le blanc). Lim age possde pour conclure, 320*200 pixels, cods chacun sur 256 niveaux (du gris dans notre cas).

    Pour information, chaque image "psera" ainsi 64000 octets, soit 62.5 Ko.

    Accder un pixel est relativem ent sim ple. Suivant la dclaration prcdente, si lon souhaite obtenir la valeur

    du pixel prsent la position (115, 28), il suffit dcrire :

    unsigned char pixel ; pixel = image[115][28];

  • P a g e | 3

    O u encore, "balayer" tous les pixels dune im age seffectue de la faon suivante (balayage ligne par ligne) :

    for( y=0; y

  • P a g e | 4

    Traitements implmenter Voici les quelques traitem ents que nous vous dem andons dim plm enter. Ils ne sont pas nombreux, aussi, prenez votre temps et essayez de bien comprendre leur intrt ainsi que leur fonctionnement propre.

    Mthode Description Image(s) source Contraste Effectuer un contraste sur une im age radio dun fm ur, pour m ettre en

    vidence des dtails.

    femur.raw

    Histogramme Raliser lhistogram m e dun ensem ble dim ages, afin den com parer les profils.

    femur.raw thrombose.raw radio.raw irm2.raw

    Fusion intra-modalit

    Implmenter une fusion entre deux images. Ces deux images ont la mme taille et sont en niveaux de gris. Essayer diffrents oprateurs (+, -, min, max, etc.).

    - =

    irm1.raw irm2.raw

    Fusion inter-modalit

    Implmenter une fusion entre deux images, cette fois, de modalits diffrentes. La premire est en niveaux de gris, la seconde en couleur. Lim age rsultante tant en niveaux de gris, convertir le pixel de couleur en niveau de gris. Essayer diffrents oprateurs (+, -, etc.).

    + =

    irm_bw.raw irm_c.raw

    Segmentation Effectuer une segmentation dune thrombose veineuse (image ultrason). Pour cela, raliser un seuillage suivi dun filtrage de type contour. Commencer par le seuillage, en testant diffrentes valeurs de seuil, jusqu obtenir celui qui vous parat le plus pertinent (il est galement possible deffectuer une analyse dhistogram m e). Comparer ensuite diffrents rsultats provenant des diffrents filtrages cits plus haut.

    thrombose.raw

    Ouverture Effectuer une ouverture sur une image radio.

    radio.raw