赞
踩
直接点击这个链接点这里,就可以进行图片转换了,但是百度对传入的图像有要求,传入的图像如果是jpg格式,那么不能大于2M。
如果要多张,甚至更多,超过1000张,都没关系,只要存放到一个文件夹中,程序就会自动读取,然后一张一张的上传给百度,处理之后图片再返回来,存放到本地文件夹中,这样任意多张的图片也可以处理了。
# -*- coding: utf-8 -*- """ Created on Wed Apr 29 13:39:37 2020 @author: hanhyalex """ import requests import base64 import numpy as np import cv2 as cv import os,sys import matplotlib.pyplot as plt def baidu_api(img,photo_index): global newpics_stor_dir os.chdir(newpics_stor_dir) request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/colourize" params = {"image":img} access_token = '[在此处填下你的tocken]' 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()) res=response.json() img=base64.b64decode(res['image']) f=open(photo_index,"wb+") f.write(img) img=cv.imread(photo_index) plt.imshow(img[:,:,::-1]) plt.show() oldpics_stor_dir=r'C:\Users\86198\Desktop\old' #这里填上黑白照片的路径 newpics_stor_dir=r'C:\Users\86198\Desktop\new' #这里填上准备把彩色照片存储的路径 temp_dir=r'C:\Users\86198\Desktop\resized' #这里是中转路径 #oldpics_stor_dir os.chdir(oldpics_stor_dir) all_pic=os.listdir(oldpics_stor_dir) t=1 #t用来给生成的照片编号 for pic in all_pic: os.chdir(oldpics_stor_dir) photo_index=pic #pic是当前照片的文件名,字符串格式 x=1 #i用来将图片缩小到合适的大小 img = cv.imread(photo_index,0) size=np.shape(img) max_size=np.max(size) test=max_size while test>800: test=max_size/x x+=0.2 img=cv.resize(img,(int(size[1]/x),int(size[0]/x))) # img=cv.cvtColor(img,) photo_index=str(t)+'.jpg' os.chdir(temp_dir) cv.imwrite(photo_index,img) f = open(photo_index, 'rb') img = base64.b64encode(f.read()) baidu_api(img,photo_index) f.close() t+=1
问题来了,如何获取你的百度tocken呢,请看 这篇博文
输入:
输出:
有任何问题都可以留言询问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。