鸡儿你太美 蔡徐坤打球插件

gif人物自动抠图 抠背景

借助 百度云AI 人像分割接口

思路:把gif每一帧导出 分别抠图 然后合并回去

合并没写 直接用软件合并的 mac用picGIF lite

蔡徐坤的打篮球gif抠出的效果还行





gif导出每帧

#!/usr/bin/python

#-*- coding: utf8 -*-

from PIL import Image

import os

gifFileName = u'caixukunWEBO.gif'

#使用Image模块的open()方法打开gif动态图像时,默认是第一帧

im = Image.open(gifFileName)

pngDir = gifFileName[:-4]

#创建存放每帧图片的文件夹

os.mkdir(pngDir)

try:

  while True:

    #保存当前帧图片

    current = im.tell()

    im.save(pngDir+'/'+str(current)+'.png')

    #获取下一帧图片

    im.seek(current+1)

except EOFError:

    pass


使用百度AI接口 批量抠图

# encoding:utf-8

import base64

import urllib

import urllib2,json


'''

人像分割

'''

#curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=RNphOQTXbrYeW3jtQ3hqaRtx&client_secret=Dv2t1n5gAdeMHE0l3rG6LerhsR9lThUi'


request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg"


for x in range(0,138):

    print x

    # 二进制方式打开图片文件

    f = open(str(x)+'.png', 'rb')

    img = base64.b64encode(f.read())

    f.close()


    params = {"image":img}

    params = urllib.urlencode(params)


    access_token = '<去百度创建应用 获取>'

    #获取方法 curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxxxx&client_secret=xxxxx'

    request_url = request_url + "?access_token=" + access_token

    request = urllib2.Request(url=request_url, data=params)

    request.add_header('Content-Type', 'application/x-www-form-urlencoded')

    response = urllib2.urlopen(request)

    content = response.read()

    if content:

        imageStr = json.loads(content)["foreground"]

        #print imageStr

        f1 = open("tmp"+str(x)+".png","wb")

        f1.write(base64.b64decode(imageStr))

        f1.close()


评论