Image en couleur vers image en noir et blanc
Ce calculateur en ligne convertit des images en couleur en des images en noir et blanc. Deux options sont possibles : seuil de luminosité ou tramage de Floyd-Steinberg.
Le calculateur ci-dessous convertit l'image mise en ligne vers une image en noir et blanc. Pas une image en échelle de gris comme dans Conversion des couleurs en niveaux de gris, mais une image ne comportant que des points noirs et blancs. Quatre méthodes de conversion sont prises en charge - utilisant une valeur de seuil de luminosité (qui peut être changée), le tramage de Floyd-Steinberg, le tramage de Jarvis et le tramage de Stucki. Vous pouvez en lire plus sur les algorithmes du calculateur ci-dessous.
Conversion d'une image en couleur vers une image en noir et blanc
Utilisant en seuil de luminosité
L'algorithme de cette méthode de création de l'image en noir et blanc est assez simple.
-
Calculer la luminosité (brillance) d'un pixel. Le calculateur utilise les coefficients standards (une fois encore, consulter Conversion des couleurs en niveaux de gris) et la valeur de luminosité est calculée comme
- Si la valeur calculée est supérieure au seuil, remplacer la couleur du pixel initial par la couleur blanche. Si elle est inférieure ou égale, remplacer la couleur du pixel initial par la couleur noire.
Par défaut, le calculateur utilise la valeur de 127 comme un seuil, le milieu de l'intervalle [0 ... 255].
Tramage de Floyd–Steinberg
La seule utilisation de la valeur seuil résulte en des transitions trop marquées entre le noir et le blanc, en particulier au niveau des bords lisses. Pour surmonter ce problème, Floyd et Steinberg ont proposé en 1976 un algorithme de tramage basé sur la diffusion de l'erreur de quantification de l'image.1 L'idée de l'algorithme est de calculer l'erreur de quantification (erreur arrondie) et de "renvoyer" une partie de celle-ci à l'image initiale, la distribuant entre les pixels voisins qui doivent être traités.
Dans l'algorithme de Floyd-Steinberg, l'erreur entre les pixels adjacents est distribuée comme suit :
Comme vous pouvez le voir, cette distribution vous permet de traiter l'image en un passage - de gauche à droite, de haut en bas.
Le pseudo-code de l'algorithme issu de wikipédia :
for each y from top to bottom do
for each x from left to right do
oldpixel := pixel[x][y]
newpixel := find_closest_palette_color(oldpixel)
pixel[x][y] := newpixel
quant_error := oldpixel - newpixel
pixel[x + 1][y ] := pixel[x + 1][y ] + quant_error × 7 / 16
pixel[x - 1][y + 1] := pixel[x - 1][y + 1] + quant_error × 3 / 16
pixel[x ][y + 1] := pixel[x ][y + 1] + quant_error × 5 / 16
pixel[x + 1][y + 1] := pixel[x + 1][y + 1] + quant_error × 1 / 16
Il y a d'autres méthodes de tramage : le tramage de Jarvis, le tramage de Stucki, le tramage de Burkes, le tramage de Sierra, mais ils diffèrent principalement du fait du schéma de la diffusion de l'erreur. J'en ai inclus deux d'entre-eux. Si vous en voulez d'autres, faites-le moi savoir en commentaire.
Tramage de Jarvis
Tramage de Stucki
-
R.W. Floyd, L. Steinberg, Un algorithme adaptatif pour l'échelle de gris spatiale. Traitement de la Société d'Affichage des Informations 17, 75–77 (1976). ↩
commentaires