Définition
Soit une image composée de lignes et colonnes, avec et .
Soit l’intensité d’un pixel, définie ici comme la valeur maximale du triplet associé au pixel.
Soit un seuil s \in \[0,255\].
Alors le seuillage de l’image f serait équivalent à une fonction tel que :
Nécessaire
Python 3 :
Pour suivre ce tutoriel, vous devez avoir installé Python 3 ainsi que le package numpy.
J’utiliserai personnellement le “Jupyter notebook” de Google : Google Colab.
Article précédent sur les bitmaps en python :
Modifier la Bitmap d’une image avec Python 3
Fonction de seuillage
Tout d’abord, il nous faut une image. Pour cela, je vous suggère de télécharger celle-ci comme ceci :
import numpy as np
from PIL import Image
ImgDL = Image.open('autumn-autumn-leaves-beautiful-color-206648-1024x771.jpg').convert('RGB')
La fonction :
Il existe plein de façon d’effectuer un seuillage en python, je vous propose celle-ci :
def seuillage(image: Image.Image, seuil: int) -> Image.Image:
pixels = np.asarray(image.convert('RGB'))
intensite = np.max(pixels, axis=2)
masque = np.where(intensite >= seuil, 255, 0).astype(np.uint8)
resultat = np.repeat(masque[:, :, np.newaxis], 3, axis=2)
return Image.fromarray(resultat, 'RGB')
Un exemple d’utilisation de cette fonction serait :
seuillage(ImgDL, 110)
Le résultat :


Faire varier le seuil entre 0 et 255 peut permettre d’obtenir de nombreuses images très intéressantes :
