Skip to main content

使用百度API实现老照片上色

· 2 min read
Chengzihan

前言

生活中,我们常常会拿起以前的老照片。但是随着时间的推移,照片被严重氧化失去了原本的颜色。本文将介绍使用百度的API实现老照片上色。

一、注册百度开发者账号

打开百度AI开放平台,点击“注册”,填写账号信息,注册成功.注册成功后选择开放能力-黑白图像上色,开通此项能力。
1654515327656.png
打开应用列表,创建应用。
1654515492431.png
记录你的API key和Secret Key。
1654515631801.jpg

二、编码

创建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()

运行代码,输出图片,对比如下:
处理前:
1.png
处理后:
result.jpg
(图片来源于网络,侵删)

备注

好像免费的只能调用一次,你可以再去领取,否则免费余额用光后会报错。

参考文章地址