RdF: segmentation par binarisation

<< | Liste des exercices | Histogramme des niveaux de gris >>

Tous les fichiers nécessaires pour traiter ce TP sont contenus dans l'archive suivante.

Code R

Quelques fonctions qui permettent de manipuler les histogrammes d'une image et de la binariser sont disponibles dans le fichier script R rdfSegmentation.R.

Le fichier rdfTesteSegmentation.R présente un exemple d'utilisation de ces fonctions, ici pour la binarisation d'une image sur la base du seul attribut niveau de gris:

# Chargement des fonctions externes
library ("EBImage")
source ("rdfSegmentation.R")

# Chargement d'une image
nom <- "rdf-2-classes-texture-0.png"
image <- rdfReadGreyImage (nom)

# Calcul et affichage de son histogramme
nbins <- 256
h <- hist (as.vector (image), breaks = seq (0, 1, 1 / nbins))

# Segmentation par binarisation
seuil <- 0.5
binaire <- (image - seuil) >= 0

# Affichage des deux images
if (interactive ()) {
    display (image, nom)
    display (binaire, "image binaire")
}

Dans tout le TP, les valeurs contenues dans une image (niveau de gris ou de texture) sont codées par un flottant de valeur minimale 0 et maximale 1.

Analyser le code R des fichiers rdfSegmentation.R et rdfTesteSegmentation.R pour répondre notamment aux questions suivantes:

  1. A quoi correspond l'argument nbins utilisé pour calculer l'histogramme des niveaux de gris? Modifier sa valeur (autre que 256) et commenter les résultats.
  2. Modifier la valeur de la variable seuil et commenter les résultats.