Algorithmes et programmes⚓︎
Sources et crédits pour ce cours
Pour préparer ce cours, j'ai utilisé :
- le parcours thématique Photographie numérique proposé par l'association France IOI sur le site https://parcours.algorea.org
- le cours de CĂ©dric Gouygou
- des TP sur Capytale de David Landry et Germain Becker.
Traitement d'image numérique⚓︎
Exercice 1
Objectif : Sélectionner des zones de pixels pour passer au négatif d'une image
- Se connecter Ă son compte sur parcours-algorea.org.
- Dans le le parcours thématique Photographie numérique, faire l'exercice Rectangles inversés.
Exercice 2
Objectif : DĂ©couvrir la notion de calques dans un logiciel de traitement d'images
- Se connecter Ă son compte sur parcours-algorea.org.
- Dans le parcours thématique Photographie numérique, faire l'exercice Autocollants.
- Compléter le texte à trous du Quiz - Traitement d'images.
Point de cours 5
Dans une image bitmap, chaque pixel est repéré par son abscisse et son ordonnée dans un repère dont l'origine est le coin supérieur gauche de l'image. L'axe des abscisses est orienté vers la droite et l'axe des ordonnées vers le bas.
Source : site de CĂ©dric Gouygou
Un algorithme de traitement d'image parcourt la matrice de pixels et applique pour chaque pixel une transformation :
- il peut modifier la valeur du pixel (négatif d'une image par exemple)
- il peut aussi déplacer le pixel (flop d'une image par exemple)
NĂ©gatif d'une image
Le négatif d'une image bitmap est un traitement d'image qui associe à chaque pixel sa valeur complémentaire.
Type d'image | Valeur du pixel | NĂ©gatif du pixel |
---|---|---|
Noir et blanc | \(0 \leqslant v \leqslant 1\) | \(1-v\) |
Niveaux de gris | \(0 \leqslant v \leqslant 255\) | \(255-v\) |
Couleur | \((r, v, b)\) avec \(0 \leqslant r, v ,b \leqslant 255\) | \((255-r, 255- v, 255 -b)\) |
L'algorithme est simple : on parcourt la matrice de pixels de l'image avec deux boucles imbriquées sur les abscisses et les ordonnées et on inverse chaque pixel.
Pour chaque abscisse x
Pour chaque ordonnée y
pixel en (x, y) prend pour valeur sa négation
Flop d'une image
Le flop d'une image bitmap est un traitement d'image qui déplace chaque pixel vers une nouvelle position qui est sa symétrique par rapport à l'un des bords verticaux de l'image.
L'algorithme est simple : on parcourt la matrice de pixels de l'image avec deux boucles imbriquées sur les abscisses et les ordonnées et on déplace chaque pixel. Cependant il faut créer une nouvelle image.
Création d'une matrice de pixels d'une nouvelle image de mêmes dimensions
Pour chaque abscisse x
Pour chaque ordonnée y
On affecte la valeur du pixel en (x, y) de l'image au pixel symétrique en (largeur $-$ x, y) dans la nouvelle image
Traitement d'image avec Python⚓︎
Exercice 3
Deux TP sont proposés, j'ai repris les excellents TP de David Landry qu'il a partagés sur Capytale :
- Objectif : créer une image numérique, découvrir les fonctions de manipulation de pixels : 💻 TP 1 sur Capytale.
- Objectif : traitement plus avancé d'images, parcours de matrice de pixels et sélection de zones de pixels : 💻 TP 2 sur Capytale.