Python. Удаление фона.

Предисловие.

В данном микрогайде, я расскажу вам о простом способе, удаления фона с изображений.

Пишем скрипт.

Для работы нам потребуется библиотека 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 скрипт, я протестировал на разных изображениях. Вот результаты.

Заключение.

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

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!