Nettoyage d'une image seulement noir
-
22-08-2019 - |
Question
J'ai une image.
Je voudrais revenir sur cette image, pixel par pixel, et un pixel qui n'est pas noir devrait être viré au blanc. Comment puis-je faire?
(python).
Merci!
La solution
Vous devez utiliser la fonction point
, qui existe précisément pour cette raison.
converter= ( (0,) + 255*(255,) ).__getitem__
def black_or_white(img):
return img.convert('L').point(converter)
Autres conseils
La façon la plus efficace est d'utiliser la fonction de point
def only_black(band):
if band > 0:
return 255
return 0
result = im.convert('L').point(only_black)
est ce que le documentation PIL dit au sujet de ceci:
Lors de la conversion d'une image à deux niveaux (Mode "1"), l'image source est d'abord converti en noir et blanc. Les valeurs résultantes sont plus grandes que 127 puis réglé sur blanc, et l'image est tramées. Pour utiliser d'autres seuils, utilisez la méthode du point.
Vous pouvez consulter la bibliothèque suivante:
http://effbot.org/imagingbook/image.htm
En particulier:
im.getpixel(xy) => value or tuple
et
im.putpixel(xy, colour)