前言
生活中,我们常常会拿起以前的老照片。但是随着时间的推移,照片被严重氧化失去了原本的颜色。本文将介绍使用百度的API实现老照片上色。
一、注册百度开发者账号
打开百度AI开放平台 (opens in a new tab),点击“注册”,填写账号信息,注册成功.注册成功后选择开放能力-黑白图像上色,开通此项能力。
打开应用列表,创建应用。
记录你的API key和Secret Key。
二、编码
创建Python工程,输入以下的代码:
import base64
import requests
# client_id 为官网获取的API key, client_secret 为官网获取的secret key
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的AK&client_secret=你的SK'
response = requests.get(host)
if response:
print(response.json())
# 黑白图像上色
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/colourize"
# 二进制方式打开图片文件
f = open('test.png', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = response.json()['access_token']
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())
# base64编码转图片
img = base64.b64decode(response.json()['image'])
file = open('result.jpg', 'wb')
file.write(img)
file.close()
运行代码,输出图片,对比如下:
处理前:
处理后:
(图片来源于网络,侵删)
备注
好像免费的只能调用一次,你可以再去领取,否则免费余额用光后会报错。