用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 KeySecret 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

来源:法纳斯特



_往期文章推荐_

Python+OpenCV十几行代码模仿世界名画





浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报