基本要求
要注册百度的账号,并且创建应用,方法如下:
目的是为了获得API_Key和Sercet_Key,并在后面有相关的应用。
人像动漫化
# encoding:utf-8
# 利用百度云智能的资源进行人物动漫化操作
import requests
import base64
from tkinter import filedialog,Tk
import os
def open_path():
root = Tk()
root.withdraw()
file_path = (filedialog.askopenfilename(title='选择图片文件', filetypes=[('All Files', '*')]))
return file_path
def Get_acess_token(API_Key,Secret_Key):#获取acess_token
host = r'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + API_Key + '&client_secret=' + Secret_Key
response = requests.get(host)
if response:
text = response.json()
print('access_token:' + text['access_token'])
print('Access Token的有效期(秒为单位,有效期30天):' + str(text['expires_in']))
return text['access_token']
else:
print(r'检查到鉴权认证失败,请参见文档:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu')
def Get_Commic_image(IDcardAdress,savePath,acess_token):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
f = open(IDcardAdress,'rb')
img = base64.b64encode(f.read())
headers = {'content-type': 'application/x-www-form-urlencoded'}
params = {'image':img,'type':'anime_mask'}
request_url = request_url + "?access_token=" + acess_token
response = requests.post(request_url,data=params,headers = headers)
if response:
imageEncode = response.json()['image']
image = base64.b64decode(imageEncode)
image_result = open(savePath,'wb')
image_result.write(image)
else:
print('请检查网络!')
if __name__ == '__main__':
API_Key = input('请输入API_Key:\n')
Secret_Key = input('请输入Secret_Key:\n')
acess_token = Get_acess_token(API_Key, Secret_Key)
IDcardAdress = open_path()
savePath = 'example.jpg'
Get_Commic_image(IDcardAdress,savePath,acess_token)
结果:
虽然看起来怪怪的,但似乎只是下巴看起来怪怪的。
黑白图像彩色化
# encoding:utf-8
# 利用百度云智能的资源进行人物彩色化操作
import requests
import base64
from tkinter import filedialog,Tk
import os
def open_path():
root = Tk()
root.withdraw()
file_path = (filedialog.askopenfilename(title='选择图片文件', filetypes=[('All Files', '*')]))
return file_path
def Get_acess_token(API_Key,Secret_Key):#获取acess_token
host = r'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + API_Key + '&client_secret=' + Secret_Key
response = requests.get(host)
if response:
text = response.json()
print('access_token:' + text['access_token'])
print('Access Token的有效期(秒为单位,有效期30天):' + str(text['expires_in']))
return text['access_token']
else:
print(r'检查到鉴权认证失败,请参见文档:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu')
def Get_Color_image(IDcardAdress,savePath,acess_token):
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/colourize"
f = open(IDcardAdress,'rb')
img = base64.b64encode(f.read())
headers = {'content-type': 'application/x-www-form-urlencoded'}
params = {'image':img}
request_url = request_url + "?access_token=" + acess_token
response = requests.post(request_url,data=params,headers = headers)
if response:
imageEncode = response.json()['image']
image = base64.b64decode(imageEncode)
image_result = open(savePath,'wb')
image_result.write(image)
else:
print('请检查网络!')
if __name__ == '__main__':
API_Key = input('请输入API_Key:\n')
Secret_Key = input('请输入Secret_Key:\n')
acess_token = Get_acess_token(API_Key, Secret_Key)
IDcardAdress = open_path() #input('请输入图像路径:\n')# C:\Users\pc\Desktop\123.jpeg
savePath = 'example.jpg' #input('请输入存储路径:\n') # C:\Users\pc\Desktop\Animate_123.jpeg
Get_Color_image(IDcardAdress,savePath,acess_token)
对赫本的上色效果还是很不错的。
这么一看导师和慈父似乎更加真实了!