用Python给旧时光上色
共 1885字,需浏览 4分钟
·
2020-10-22 09:10
大家好,欢迎来到Crossin的编程教室!
前阵子,一个老北京的视频火了。
视频作者利用深度学习技术,给100年前的老视频上色修复,黑白变彩色。
让大家目睹了100年前中国人民的生活。
大家可以上微博搜下原博主 @大谷Spitzer 观看视频。
如果你对此技术感兴趣,想要自己也玩耍一把,那不妨来一起看看我们本文盘点的工具吧:
1. Algorithmiaio
国外网站,访问速度还可以,缺点就是生成的图有水印。
点击upload上传本地图片,这里就以100年前的老北京为例。
左侧是原图,右侧是经过着色的图,可以看到效果还不错。
https://demos.algorithmia.com/colorize-photos
2. ColouriseSG
同样也是一个国外网站,缺点是无法上传图片,估计是网络连接不畅。
同样左侧是原图,右侧是着色图。
验证码看不到,所以无法提交,无奈?♀️
https://colourise.sg/#colorize
3. 百度焕彩
18年的时候,百度出了一款名为「焕彩」的产品,以此来纪念改革开发40周年。
我们相信,技术有温度,更有色彩。希望借助技术的力量,能“唤醒”爷爷奶奶手中的黑白老照片,让每个人看到那个年代最真实的景象。
把长辈们年轻时的黑白照片变成彩色,或许这也是一份不错的礼物。
支持手机访问。上传图片后点击按钮,很快就会有结果,可以自己试试看。
http://w.benbun.com/baidu/shangse
4. 百度AI开放平台「黑白图像上色」
这个强烈推荐,20行代码即能搞定黑白照片转彩色。
需要注册成为百度开发者,创建应用,获取API Key和Secret Key。
进而得到access_token,输入黑白图像获取彩色图像的Base64编码。
再将Base64编码字符串转为图片即可。
代码如下:
import base64
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
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()
下面展示一下黑白图像。
彩色图像如下,效果真的挺好。
虽然相比前面的一键式工具,过程变得复杂了。但好处是你可以将其整合到你的python代码或者其他项目中,实现更丰富的功能!
视频本质上也是由一帧一帧图片组成的,实现了图片的转换,你也可以用同样的方式来转换黑白视频。
赶紧动手试一试吧!
作者:小F
来源:法纳斯特
_往期文章推荐_