<< Transformations ponctuelles d'une image | Liste des exercices | >>

3. Accès aux canaux et pixels d'une image

Le but de ces exercices est de se familiariser avec le stockage d'une image sous forme de tableau python et l'accès aux pixels de celle-ci.

  1. Écrire la fonction :
def afficherCanal(nomImage, iCanal)
qui retourne le canal numéro iCanal (de 0 à 2) de l'image couleur nomImage, sous la forme d'une image couleur où seul subsiste ce canal. On testera cette fonction sur l'image lena.png, dont la représentation du plan rouge (par exemple) donne :
Quel est l'ordre des canaux couleur lus par OpenCV ?
Comment lire la valeur des 4 premiers pixels en ligne et en colonne du canal iCanal ? Vérifier ces valeurs grâce à XnView (cf. menu Affichage/Voir informations de couleur).
  1. Une caméra couleur possédant un seul capteur, telle que celle que nous utilisons pour ce projet, ne fournit qu'une seule composante couleur (R, G ou B) par pixel. L'image correspondante est formée via un ensemble de filtres couleurs (CFA, Color Filter Array). Elle est dite image CFA ou image brute ou encore image Bayer (du nom de l'inventeur du CFA le plus répandu). Une opération dite de dématriçage est nécessaire pour obtenir, à partir de l'image CFA, une image couleur où les 3 composantes couleur sont disponibles en chaque pixel.
Le CFA considéré est celui de la caméra IDS uEye 1225 utilisée dans le projet, à savoir :

Écrire la fonction :

def bayer(nomImage)

qui retourne l'image CFA correspondant à l'image couleur nomImage. Tester cette fonction sur l'image lena.png.

Combien de canaux possède l'image CFA ?
Comment vérifier que l'image CFA obtenue est correcte ?
  1. Utiliser la fonction cvtColor pour estimer une image couleur par dématriçage à partir de l'image CFA, puis sauvegarder cette image estimée grâce à la fonction imwrite.
Quels sont les effets du dématriçage implémenté sous OpenCV (comparer l'image estimée à l'image lena.png d'origine) ?