Limpieza de una imagen con sólo el negro
-
22-08-2019 - |
Pregunta
Tengo una imagen.
Me gustaría ir sobre esa imagen, pixel por pixel, y cualquier píxel que no es negro debe ser vuelto blanca. ¿Cómo puedo hacer esto?
(Python).
Gracias!
Solución
Se debe utilizar la función de point
, que existe específicamente por esta razón.
converter= ( (0,) + 255*(255,) ).__getitem__
def black_or_white(img):
return img.convert('L').point(converter)
Otros consejos
La forma más eficiente es utilizar la función de punto
def only_black(band):
if band > 0:
return 255
return 0
result = im.convert('L').point(only_black)
Esto es lo que el href="http://effbot.org/imagingbook/image.htm" rel="nofollow noreferrer"> documentación tiene que decir acerca de esto:
Al convertir una imagen de dos niveles a (Modo "1"), la imagen de origen es primero convertido a blanco y negro. valores resultantes de más de 127 son a continuación, establece en blanco, y la imagen es difuminada. Para utilizar otros umbrales, utilizar el método del punto.
Es posible que desee revisar la biblioteca siguiente:
http://effbot.org/imagingbook/image.htm
Especialmente:
im.getpixel(xy) => value or tuple
y
im.putpixel(xy, colour)