Предисловие.
В данном микрогайде, я расскажу вам о простом способе, удаления фона с изображений.
Пишем скрипт.
Для работы нам потребуется библиотека rembg и PIL.
pip install rembg
pip install pillow
Далее, скопируйте Python скрипт.
from rembg.bg import remove
import numpy as np
import io
from PIL import Image
input_path = 'in.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)
Теперь, разберем его.
from rembg.bg import remove
import numpy as np
import io
from PIL import Image
- Импортировали метод remove, с помощью него, будем удалять фон изображения.
- Импортировали все остальное.
input_path = 'in.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)
- Переводим массив данных, в байт-код io.BytesIO(result), ковертируем в RGBA.
- Сохраняем изображение.
Примеры работы скрипта
Данный Python скрипт, я протестировал на разных изображениях. Вот результаты.





Заключение.
Как видите, данный способ не идеален, он скорее полу-автоматический, т.е. изображения с обрезанным фоном, нужно подредактировать, исправляя косяки скрипта.
Итоговый результат.
