只需要3行代码,5秒实现高精度抠图
介绍一款工具remove.bg,通过调用此工具的API实现,API获取方式很简单,注册这个工具账号,就可以免费获得了
话不多说,老规矩,直接上代码:
import os from removebg import RemoveBg
class ChangePic():def __init__(self,key,pic):self.key = keyself.pic = picdef remove(self):"""单张图片抠图:return:"""rmove = RemoveBg(self.key,'error.log')path = os.getcwd()+'\\'+self.picprint(path)rmove.remove_background_from_img_file(path)
这样,就实现简单的图片抠图了,放原图:
运用机器抠图结果:
个人感觉是比我这个手残党扣的好很多了!!!
再来实现简单的背景更换脚本:
from PIL import Image
def changeBack(self,color):"""更换背景色:param color::return:"""color_dict = {"A":(255,0,0),"B":(67,142,219),"C":(255,255,255)}img = self.pic+'_no_bg.png'im = Image.open(img)x,y = im.sizetry:p = Image.new('RGBA',im.size,color =color_dict.get(color))p.paste(im,(0,0,x,y),im)p.save('{}.png'.format('new'+color))except:print('change err')
A,B,C分别代表红色,蓝色,白色 ,OK,来看看样图: