in

Trabajar con imágenes en Python

gfg 200x200 min

PIL es la biblioteca de imágenes de Python que proporciona al intérprete de Python capacidades de edición de imágenes. Fue desarrollado por Fredrik Lundh y varios otros colaboradores. Pillow es la amigable bifurcación PIL y una biblioteca fácil de usar desarrollada por Alex Clark y otros colaboradores. Trabajaremos con Pillow.

Instalación:

  • Linux: En la terminal de Linux, escriba lo siguiente:
    pip install Pillow

    Instalación de pip a través de la terminal:

    sudo apt-get update
    sudo apt-get install python-pip
  • Ventanas: Descargar el paquete de almohada apropiado de acuerdo con su versión de Python. Asegúrese de descargar de acuerdo con la versión de Python que tenga.

Aquí trabajaremos con el módulo de imagen que proporciona una clase del mismo nombre y proporciona muchas funciones para trabajar en nuestras imágenes. Para importar el módulo de imagen, nuestro código debe comenzar con la siguiente línea:

 from PIL import Image

Operaciones con imágenes:

  • Abra una imagen particular de una ruta:

      

    try

        img  = Image.open(path) 

    except IOError:

        pass

  • Recuperar el tamaño de la imagen: Las instancias de la clase Image que se crean tienen muchos atributos, uno de sus atributos útiles es el tamaño.

    from PIL import Image

     

    filename = "image.png"

    with Image.open(filename) as image:

        width, height = image.size

    Algunos otros atributos son: Image.width, Image.height, Image.format, Image.info, etc.

  • Guardar cambios en la imagen: Para guardar los cambios que haya realizado en el archivo de imagen, debemos proporcionar la ruta y el formato de la imagen.

    img.save(path, format)    

  • Girar una imagen: La rotación de la imagen necesita un ángulo como parámetro para rotar la imagen.

    from PIL import Image

     

    def main():

        try:

            

            img = Image.open("picture.jpg"

             

            

            img = img.rotate(180

             

             

            img.save("rotated_picture.jpg")

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    rotar una imagen en python
    Nota: Hay un indicador de expansión opcional disponible como uno de los argumentos del método de rotación, que si se establece en verdadero, expande la imagen de salida para que sea lo suficientemente grande como para contener la imagen rotada por completo.
    Como se ve en el fragmento de código anterior, he usado una ruta relativa donde mi imagen se encuentra en el mismo directorio que mi archivo de código Python, también se puede usar una ruta absoluta.

  • Recortar una imagen: Image.crop (cuadro) toma una coordenada de píxeles de 4 tuplas (izquierda, superior, derecha, inferior) y devuelve una región rectangular de la imagen utilizada.

    from PIL import Image

     

    def main():

        try:

            

            img = Image.open("picture.jpg")

            width, height = img.size

             

            area = (0, 0, width/2, height/2)

            img = img.crop(area)

             

            

            img.save("cropped_picture.jpg"

             

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    recortar una imagen en python

  • Cambiar el tamaño de una imagen: Image.resize (tamaño): aquí el tamaño se proporciona como ancho y alto de 2 tuplas.

    from PIL import Image

     

    def main():

        try:

             

            img = Image.open("picture.jpg")

            width, height = img.size

      

            img = img.resize((width/2, height/2))

             

            

            img.save("resized_picture.jpg"

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    cambiar el tamaño de una imagen en python

  • Pegar una imagen en otra imagen: El segundo argumento puede ser una tupla de 2 (especificando la esquina superior izquierda) o una tupla de 4 (izquierda, superior, derecha, inferior); en este caso, el tamaño de la imagen pegada debe coincidir con el tamaño de esta región del cuadro, o Ninguno que sea equivalente a (0, 0).

    from PIL import Image

     

    def main():

        try:

            

            

            img = Image.open("picture.jpg"

             

            

            

            img2 = Image.open("picture2.jpg"

            img.paste(img2, (50, 50))

             

            

            img.save("pasted_picture.jpg")

             

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

     

    pegar una imagen en otra en Python

  • Obtener un histograma de una imagen: Esto devolverá un histograma de la imagen como una lista de recuentos de píxeles, uno por cada píxel de la imagen. (Un histograma de una imagen es una representación gráfica de la distribución tonal en una imagen digital. Contiene todos los valores de brillo contenidos en una imagen. Traza el número de píxeles para cada valor de brillo. Ayuda a realizar los ajustes de exposición. .)
    de la imagen de importación PIL

    def main():

        try:

            

            img = Image.open("picture.jpg"

             

            

            print img.histogram()

             

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    obteniendo un histograma de imagen en python

  • Transposición de una imagen: Esta característica nos da la imagen especular de una imagen.

        from PIL import Image

     

    def main():

        try:

            

            img = Image.open("picture.jpg"

             

            

            transposed_img = img.transpose(Image.FLIP_LEFT_RIGHT)

             

            

            transposed_img.save("transposed.jpg")

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    transponer una imagen en python

  • Divida una imagen en bandas individuales: Al dividir una imagen en modo RGB, se crean tres imágenes nuevas, cada una de las cuales contiene una copia de las bandas individuales originales.

    from PIL import Image

     

    def main():

        try:

            

            img = Image.open("picture.jpg"

             

            

            print img.split()

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    dividir una imagen en python

  • mapa de bits: Conversión de una imagen a un mapa de bits X11 (un formato de imagen binaria de texto sin formato). Devuelve una cadena que contiene un mapa de bits X11, solo se puede utilizar para imágenes en modo “1”, es decir, imágenes en blanco y negro de 1 bit de píxeles.
    de la imagen de importación PIL

    def main():

        try:

            

            img = Image.open("picture.jpg"

            print img.mode

             

            

            print img.tobitmap()

             

            print type(img.tobitmap())

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    convertir imagen a mapa de bits en python
    convertir imagen a bitmao en python

  • Creando una miniatura: Este método crea una miniatura de la imagen que se abre. No devuelve un nuevo objeto de imagen, realiza modificaciones en el lugar del propio objeto de imagen abierto actualmente. Si no desea cambiar el objeto de imagen original, cree una copia y luego aplique este método. Este método también evalúa lo apropiado para mantener la relación de aspecto de la imagen de acuerdo con el tamaño pasado.
    de la imagen de importación PIL

    def main():

        try:

            

            img = Image.open("picture.jpg"

             

            

            img.thumbnail((200, 200)) 

             

            img.save("thumb.jpg")

        except IOError:

            pass

     

    if __name__ == "__main__":

        main()

    creando una miniatura de la imagen en Python

Este artículo es una contribución de Mohit Agarwal. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o envíe su artículo por correo electrónico a contrib@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y aprende los conceptos básicos.

Para empezar, los preparativos de su entrevista Mejore sus conceptos de estructuras de datos con el Python DS Curso. Y para comenzar con su viaje de aprendizaje automático, únase al Aprendizaje automático – Curso de nivel básico

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

docker – ¿Cuál es la diferencia entre los comandos ‘COPY’ y ‘ADD’ en un Dockerfile?

edit

Costo fijo vs costo variable: diferencia y comparación