Cómo quitar fondos de imágenes con Python
Pitón es un lenguaje de programación multipropósito. Hace muchas cosas desde crear aplicaciones web para comprobar quién es Estación Espacial Internacional con Frambuesa Pi Pico W.
Python es fácil de aprender porque es fácil de leer. Lo que hace que Python sea polivalente son los módulos de código preescrito, a veces llamados “bibliotecas”. Estos módulos aportan una nueva funcionalidad, por ejemplo, RPi.GPIO permite que Python maneje GPIO. Frambuesa Pi.
En este tutorial, usaremos dos módulos de Python para crear una aplicación GUI que eliminará el fondo de una imagen. El primer módulo, rembg de daniel gatis eliminará el fondo de cualquier imagen que se le proporcione. El segundo módulo proporciona una herramienta para crear diálogos y menús utilizando el kit de herramientas del sistema operativo Easygui. Por lo tanto, el cuadro de diálogo abrir/guardar archivo será similar a los utilizados en muchos otros programas.
Puede hacer sus solicitudes para llevar este proyecto más lejos empaquetar el código del proyecto en un único archivo ejecutable.
Ajustar
Antes de escribir una línea de código, necesitamos tener todo en orden. Primero, crearemos una carpeta para almacenar las imágenes con las que trabajaremos. A continuación, abriremos un editor de Python para la parte de codificación del proyecto.
1. Cree una nueva carpeta en su escritorio llamada rembg.
2. Coloque la imagen que desea quitar el fondo en la carpeta.
3. Abre tu editor de Python preferidonosotros preferimos thony ya que proporciona una interfaz de usuario simple. Míralo esta guía Para instalar Thonny.
Instalación de módulos de Python
Para usar Rembg, primero debemos descargar e instalar su módulo Python. Esto se puede manejar usando el administrador de paquetes integrado de Thonny o la herramienta de empaquetado de Python, pip.
Configuración a través de Thonny
1. Haga clic en Herramientas >> Administrar paquetes.
2. Busque rembg y haga clic en Buscar en PyPi. Seleccione rembg de la lista devuelta.
3. Haga clic en Instalar para descargar e instalar rembg para Python. Ya hemos instalado rembg en nuestro sistema, de ahí el botón de desinstalación.
4. Repita los pasos 2 y 3, pero esta vez busque e instale easygui.
Instalación vía pip
Si está utilizando otro editor de Python, deberá instalar los paquetes de Python mediante pip.
1. Abra el símbolo del sistema e instale rembg. Presiona Enter para iniciar el proceso.
pip install rembg
2. Instale easygui usando pip. Easygui proporciona una interfaz de usuario básica para abrir y guardar archivos.
pip install easygui
escribiendo el código
El código es esencialmente muy simple, con solo ocho líneas de Python podemos eliminar el fondo de cualquier imagen. Los módulos principales, rembg y easygui harán todo el trabajo pesado por nosotros.
1. Importe la clase de eliminación del módulo rembg. Esto es lo que usaremos para eliminar el fondo.
from rembg import remove
2. Importe una imagen de la biblioteca de imágenes de Python (PIL). PIL es un módulo poderoso que contiene muchas opciones diferentes para crear y trabajar con imágenes y secuencias de imágenes.
from PIL import Image
3. Importe el módulo Easygui y cree una referencia a él como “ejemplo”. Easygui es una GUI para operaciones básicas de archivos. Cambiarle el nombre a “ejemplo” hace que sea más fácil trabajar con él.
import easygui as eg
4. Cree un objeto, input_path y utilícelo para almacenar la ruta y el nombre del archivo del que queremos eliminar el fondo. Usando el cuadro de diálogo abierto del archivo easygui, le damos un título para explicar para qué sirve el cuadro de diálogo. El archivo seleccionado y su ruta se almacenan en el objeto input_path.
input_path = eg.fileopenbox(title="Select image file")
5. Cree un objeto, use el cuadro de diálogo para guardar archivos de easygui para obtener la ruta de salida y la ruta del archivo y guárdela en el objeto.
output_path = eg.filesavebox(title="Save file to..")
6. Cree un objeto, insértelo y utilícelo para abrir y guardar una imagen a través de Image.open de PIL función.
input = Image.open(input_path)
7. Use rembg para eliminar el fondo de la imagen.
output = remove(input)
8. Guarde la nueva imagen utilizando la ruta del archivo almacenada en output_path.
output.save(output_path)
9. Guarde el código como background_remover.py.
10 Ejecute el código haciendo clic en el botón Ejecutar.
11 Seleccione la foto de la que desea eliminar el fondo. Observe que el diálogo tiene el título que especificamos en el código.
12 Vaya a la carpeta rembg y asigne un nombre al archivo y establezca el formato de archivo en PNG. Clic en Guardar. En nuestro ejemplo, guardamos el archivo como les-no-bg.png.
13. Puede encontrar un error, pero esto es de esperar. Descargar archivo u2net y guárdelo en la carpeta .u2net en su directorio de usuario. Esta carpeta se crea y guarda automáticamente.
14 Vuelva al paso 10 y vuelva a ejecutar el código. No habrá ningún error esta vez, así que omita el paso 13.
15. Vaya a la carpeta rembg y su imagen estará lista para usar.
Lista completa de códigos
from rembg import remove
from PIL import Image
import easygui as eg
input_path = eg.fileopenbox(title="Select image file")
output_path = eg.filesavebox(title="Save file to..")
input = Image.open(input_path)
output = remove(input)
output.save(output_path)