百度人像分割API

配置API的视频教程在这里。建议看视频,视频里的很详细。
视频教程
百度Ai平台链接
这是最后的代码
代码和教程的代码一样

import requests
import base64

import cv2
import numpy as np
import base64

from PIL import Image
'''
人像分割
'''
file_path = 'F:/630/images/test/4.jpg'
img = Image.open(file_path)

width = img.width       #图片的宽
height = img.height      #图片的高

request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg"
# 二进制方式打开图片文件
f = open(file_path, 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = '24.08f1b607452661766d1f84729094d470.2592000.1633934401.282335-24834460'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
# if response:
#     print (response.json())




labelmap = base64.b64decode(response.json()['labelmap'])    # res为通过接口获取的返回json
nparr = np.frombuffer(labelmap, np.uint8)
labelimg = cv2.imdecode(nparr, 1)
# width, height为图片原始宽、高
labelimg = cv2.resize(labelimg, (width, height), interpolation=cv2.INTER_NEAREST)
im_new = np.where(labelimg==1, 255, labelimg)
cv2.imwrite('F:/630/images/15/4.png', im_new)

实现效果这样

在这里插入图片描述在这里插入图片描述
图片是百度找的图

可能会出现的报错是

KeyError: ‘labelmap’

这主要是因为你要处理的图片太大了。把它的容量改小一点。

如果有什么问题,可以私信我或者留言

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值