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!

¿Fue útil?

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top