informatique (tronc commun des prépas scientifiques) · Chapitre 8 · Application directe du cours
Éclaircir sans déborder
Matrices de pixels et images · niveau 1 (application)
Énoncé
Écrire eclaircir(img, delta) qui ajoute delta à chaque pixel tout en écrêtant les valeurs dans . Expliquer pourquoi cette transformation n'est pas inversible.
Corrigé
def eclaircir(img: list, delta: int) -> list:
n, p = len(img), len(img[0])
return [[min(255, max(0, img[i][j] + delta)) for j in range(p)]
for i in range(n)]
L'écrêtage détruit de l'information. Si un pixel de valeur est éclairci avec delta = 30, sa valeur est bridée à . Si l'on applique ensuite la transformation inverse avec delta = -30, la valeur obtenue est de au lieu de retrouver . Les deux opérations ne sont donc pas inverses l'une de l'autre.