Python调用腾讯API进行人像动漫化效果实例
1. API获取
1.确保电脑正确连接网络。
2.浏览器搜索“腾讯云”,或者输入网址:
3.进行简单的注册、实名认证。
4.新建一个密钥
5.在搜索框搜索人像变换,点击控制台入口下方的人像动漫画,扫码实名认证。
6.实名验证成功之后,就可在此页面查看API的调用情况。
7.搜索相关文档找到想要的API
8.勾选“只看必要参数”,随意选择一个地区,点击“发起调用”,右边框中选择自己熟悉的计算机语言,我选用的是python
2. 代码调试
2.1整体结构
2.2 代码解析
pip 安装腾讯云SDK:
pip install --upgrade tencentcloud-sdk-python
导入必要的包,输入申请好的密钥和密码,读取图片,然后将图片转码。
import json from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.ft.v20200304 import ft_client, models import base64 SecretId = "自己的SecretId" SecretKey = "自己的SecretKey" img_dir = "C:/Users/Ben/Desktop/img/flower.jpg" with open(img_dir, 'rb') as f: base64_data = base64.b64encode(f.read()) base64_code = base64_data.decode()
问:图片在发送之前被编码成了啥? 答:一堆神秘的字符串
调用API处理图片, 接收数据,解码显示。
pip 安装腾讯云SDK:
try: cred = credential.Credential(SecretId, SecretKey) httpProfile = HttpProfile() httpProfile.endpoint = "ft.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = ft_client.FtClient(cred, "ap-beijing", clientProfile) req = models.FaceCartoonPicRequest() req.Image = base64_code resp = client.FaceCartoonPic(req) print(resp) json_data = resp.to_json_string() bb = json.loads(json_data) image = bb["ResultImage"] with open('C:/Users/Ben/Desktop/img/flower2.jpg', 'wb') as f: f.write(base64.b64decode(image)) f.close()
问:API调用成功返回给电脑了什么?
答:返回一个字典类型的数据。
2.3完整代码
import json from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.ft.v20200304 import ft_client, models import base64 SecretId = "自己的SecretId" SecretKey = "自己的SecretKey" img_dir = "C:/Users/Ben/Desktop/img/flower.jpg" with open(img_dir, 'rb') as f: base64_data = base64.b64encode(f.read()) base64_code = base64_data.decode() try: cred = credential.Credential(SecretId, SecretKey) httpProfile = HttpProfile() httpProfile.endpoint = "ft.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = ft_client.FtClient(cred, "ap-beijing", clientProfile) req = models.FaceCartoonPicRequest() req.Image = base64_code resp = client.FaceCartoonPic(req) print(resp) json_data = resp.to_json_string() bb = json.loads(json_data) image = bb["ResultImage"] with open('C:/Users/Ben/Desktop/img/flower2.jpg', 'wb') as f: f.write(base64.b64decode(image)) f.close() except TencentCloudSDKException as err: print(err)
2.4效果展示:
3. 问题与分析
API返回的参数需要使用 “ .to_json_string() “像数据格式转换为json可读的形式否则如下图:
如果上传的照片没有人脸:
总结
到此这篇关于Python调用腾讯API进行人像动漫化效果的文章就介绍到这了,更多相关Python人像动漫化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python socket.error: [Errno 98] Address already in use的原因和解决
这篇文章主要介绍了Python socket.error: [Errno 98] Address already in use的原因和解决方法,在Python的socket编程中可能会经常遇到这个问题,需要的朋友可以参考下2014-08-08使用python-cv2实现Harr+Adaboost人脸识别的示例
这篇文章主要介绍了使用python-cv2实现Harr+Adaboost人脸识别的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-10-10Python入门教程(四十一)Python的NumPy数组索引
这篇文章主要介绍了Python入门教程(四十一)Python的NumPy数组索引,数组索引是指使用方括号([])来索引数组值,numpy提供了比常规的python序列更多的索引工具,除了按整数和切片索引之外,数组可以由整数数组索引、布尔索引及花式索引,需要的朋友可以参考下2023-05-05
最新评论