Python:批量抠图,填充背景

抠图

参考:知乎,3行Python代码,实现批量抠图和换底色的方法,作者林泽风

获取API

利用了Remove Image Background这个网站,网站地址:https://www.remove.bg

首先点击右上角注册。一个免费的账户,每个月可以抠图50次,点击 Read the API docs

点击Get API Key

得到你的API Key

安装库

pip install removebg

官网文件和教程:https://github.com/brilam/remove-bg

去除图片背景(本地)

这里的图片是指,已经在本地的,不是网络上的图片。

有三个参数,其中img_file_path图片路径是必填的,图片的尺寸size和背景色bg_color是选填的

from removebg import RemoveBg

rmbg = RemoveBg("YOUR-API-KEY", "error.log")  # 把你的`API Key`填进去
rmbg.remove_background_from_img_file("remove1.jpg")

批量抠图

图片放到程序的同级文件夹 picture 里面,我从百度上下载了一些剧照

from removebg import RemoveBg
import os

rmbg = RemoveBg("YOUR-API-KEY", "error.log")

path = '%s/picture'%os.getcwd() 

for pic in os.listdir(path):
    rmbg.remove_background_from_img_file("%s\%s"%(path,pic))

填充背景颜色

from PIL import Image
im = Image.open('remove1.jpg_no_bg.png')  # 打开一张PNG的图片
x, y = im.size  # 获取图像尺寸
try:    
    p = Image.new('RGBA', im.size, (64, 128, 128)) # 构建背景颜色
    p.paste(im, (0, 0, x, y), im)  # 填充颜色
    p.save('remove1.jpg_color_bg.png')  # 保存图像
except:
    with open('./error.log', 'a') as f:  # 如果失败了,保留错误信息
        f.write('background change fail .')

关于RGB的颜色怎么获取,你可以直接打开画图软件,获取数值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。