Без фотошопа: как с помощью Python удалить фон изображения
Rembg — это инструмент Python для удаления фона изображений. Проект лежит на GitHub, имеет уже 1,3 тысячи звездочек, 250 форков и распространяется под лицензией MIT.
Требования
- Версия Python 3.8 и выше;
- Стабильная версия
torch/torchvision
.
Как установить torch/torchvision
Перейдите по ссылке и пролистайте до раздела INSTALL PYTORCH
и следуйте инструкциям.
Например:
PyTorch Build: Stable (1.7.1) Your OS: Windows Package: Pip Language: Python CUDA: None
Команда установки:
pip install torch==1.7.1+cpu torchvision==0.8.2+cpu -f https://download.pytorch.org/whl/torch_stable.html
Установка
Установите инструмент из pypi
.
pip install rembg
Использование в качестве CLI
Удаление фона с удаленного изображения.
curl -s http://input.png | rembg > output.png
Код для удаления фона из локального файла.
rembg -o path/to/output.png path/to/input.png
Код для удаления фона со всех изображений в папке.
rembg -p path/to/input path/to/output
Добавление собственной модели
Скопируйте файл custom-model.pth file to ~/.u2net
и запустите:
curl -s http://input.png | rembg -m custom-model > output.png
Использование в качестве сервера
Запустите сервер.
rembg-server
Откройте браузер.
http://localhost:5000?url=http://image.png
Чтобы отправить файл как FormData (multipart/form-data
):
<form action="http://localhost:5000" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="upload"/> </form>
Использование в качестве библиотеки
Пример 1: чтение из stdin
и запись в stdout
В app.py
.
import sys from rembg.bg import remove sys.stdout.buffer.write(remove(sys.stdin.buffer.read()))
Запускаем.
cat input.png | python app.py > out.png
Пример 2: использование Python Imaging Library
В app.py
.
from rembg.bg import remove import numpy as np import io from PIL import Image input_path = 'input.png' output_path = 'out.png' f = np.fromfile(input_path) result = remove(f) img = Image.open(io.BytesIO(result)).convert("RGBA") img.save(output_path)
Запускаем.
python app.py
Использование в качестве докера
Просто запускаем.
curl -s http://input.png | docker run -i -v ~/.u2net:/root/.u2net danielgatis/rembg:latest > output.png
Предварительное использование
Иногда можно добиться лучших результатов, включив альфа-матирование. Пример:
curl -s http://input.png | rembg -a -ae 15 > output.png
Удаление фона с альфа-матированием и без
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: