12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBORDémontrons quelques définitions <strong>de</strong> ces fonctions qui seront utilisées par <strong>la</strong> suite dans les <strong>de</strong>scriptions<strong>de</strong>s algorithmes. La fonction d’échantillonnage sampI qui n’est spécialisée qu’à l’in<strong>de</strong>xage <strong>de</strong>s élémentsà l’intérieur du domaine <strong>de</strong> l’image est définie comme :sampI α :: ( Ix β) ⇒ Ar β α → β → αsampI ar x = ar !xRemarquons que sa signature <strong>de</strong> type est compatible avec celle du type type SampFnc :sampI α :: SampFnc αLa fonction sampB ne se spécialise qu’au traitement <strong>de</strong>s bords et elle est définie comme :sampB α :: ( Ix β) ⇒ Bro<strong>de</strong>rFnc α → Ar β α → β → αsampB brdfnc ar x = brdfnc ar xRemarquons que sa signature <strong>de</strong> type est compatible avec <strong>la</strong> suivante qui utilise le type SampFnc :sampB α :: Bro<strong>de</strong>rFnc α → SampFnc αC’est-à-dire, elle prend une fonction traitant le bord comme paramètre et nous retourne <strong>la</strong> fonctiond’échantillonnage.La fonction sampGen assure le cas général où nous pouvons échantillonner avec les in<strong>de</strong>x concretsinclus dans le domaine <strong>de</strong> l’image mais également avec les in<strong>de</strong>x qui n’y sont pas inclus. Nous réutilisonsles <strong>de</strong>ux fonctions précé<strong>de</strong>ntes :sampGen α :: ( Ix β) ⇒ Bro<strong>de</strong>rFnc α → Ar β α → β → αsampGen brdfnc ar x = λx → if inRange(bounds $ ar) x then(sampI ar x)else(sampB brdfnc ar x)Remarquons que sa signature <strong>de</strong> type est compatible avec celle qui utilise le type SampFnc :sampGen α :: Bro<strong>de</strong>rFnc α → SampFnc α4.6.4.4 Généralisation <strong>de</strong> l’extraction du voisinageNous appelons les fonctions d’extraction du voisinage les fonctions qui, <strong>pour</strong> un array donné et unin<strong>de</strong>x donnée, extraient les valeurs <strong>de</strong>s éléments voisins. Elle seront du type ExtrNgb qui est définicomme :type ExtrNgb α = Ar ( I , I ) α → ( I , I ) → [α]Cette façon <strong>de</strong> voir les fonctions <strong>pour</strong> l’extraction du voisinage est assez générale <strong>pour</strong> pouvoir incluretous les cas possibles car elle ne se base pas, dans sa définition, sur une liste concrète <strong>de</strong>s voisins et nes’occupe pas à l’échelle <strong>de</strong> ses paramètres par <strong>la</strong> gestion particulière <strong>de</strong>s voisins dépassant les bords <strong>de</strong>l’image.En effet, c’est le corps <strong>de</strong> <strong>la</strong> fonction qui définira tous ces détails. Les fonctions que nous définironspar <strong>la</strong> suite seront plus spécialisées, e.g. <strong>pour</strong> <strong>la</strong> grille hexagonale ou <strong>la</strong> grille carrée, et auront <strong>la</strong> signature<strong>de</strong> type différente. Mais après l’application partielle à <strong>de</strong>s paramètres concrets, nous obtiendrons unenouvelle fonction, qui sera du type ExtrNgb <strong>de</strong>s fonctions d’extraction du voisinage.4.6.4.5 Extraction du voisinage <strong>de</strong>s types <strong>de</strong> baseL’extraction du voisinage <strong>de</strong>s types <strong>de</strong> base est assurée par l’utilisation <strong>de</strong> <strong>la</strong> fonction <strong>de</strong> concrétisation<strong>de</strong>s in<strong>de</strong>xes, qui est du type SpecNgb, <strong>pour</strong> une position donnée pos et <strong>pour</strong> les in<strong>de</strong>xes <strong>de</strong>dép<strong>la</strong>cement donnés ngbs en spécifiant <strong>la</strong> fonction exacte d’échantillonnage qui est du type SampFnc.Commençons par <strong>la</strong> présentation <strong>de</strong>s définition <strong>de</strong> certaines fonction d’extraction du voisinage. Pour untravail le plus générique possible d’extraction du voisinage, nous définissons <strong>la</strong> fonction extrNgb :90

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!