Python使用工具实现简单抠图、背景色替换

我们经常会使用PhotoShop来作为抠图工具实现一些日常的证件照背景色替换,复杂的会比较繁琐,这里使用Python来实现快速抠图置换背景色。
removebg是一个利用AI智能抠图的网站,提供了API 接口,可以直接调用并实现抠图,每月有50张免费,使用前需要去官网 https://www.remove.bg/ 注册并获取API KEY,
可以通过谷歌浏览器打开,key可以在登录后新建获取即可。
1.安装removebg库
pip install removebg
2.安装pillow
pip install pillow
3.实现抠图
因为图片具有隐私性、版权性,这里不作截图展示,可以使用自身的证件照进行测试
rmbg = RemoveBg("你注册新建获取的秘钥", "error.log")
# 输入你自己想要抠图的图片路径
rmbg.remove_background_from_img_file("./img/2.png")
4.实现背景颜色替换
from removebg import RemoveBg
from PIL import Image

rmbg = RemoveBg("你注册新建获取的秘钥", "error.log")
# 输入你想要扣图的图片路径
fileIn = 'D:/python/img/2.png'
# 输入你最后完成输出的图片路径
fileOut = 'D:/python/img/23.png'
# 换背景色
# 白色:rgb(255, 255, 255)
# 蓝色:rgb(0, 0, 255),(0, 125, 255)
# 红色:rgb(255, 0, 0)
color = (0, 125, 255)
# split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
p, s = fileIn.split(".")
rmbg.remove_background_from_img_file(fileIn)
fileNoBg = "{}.{}_no_bg.{}".format(p, s, s)
noBgImage = Image.open(fileNoBg)
x, y = noBgImage.size
newImage = Image.new('RGBA', noBgImage.size, color=color)
newImage.paste(noBgImage, (0, 0, x, y), noBgImage)
newImage.save(fileOut)
根据自己需要的背景色,输入即可,这里只列出通用的白、蓝、红,其他需要的可再自行输入。
posted on 2022-09-12 20:03  进击的qing  阅读(1285)  评论(0编辑  收藏  举报