1.百度智能云图像增强和特效API链接如下:
https://cloud.baidu.com/product/imageprocess/enhancement
图像增强与特效的SDK文档链接:
https://cloud.baidu.com/doc/IMAGEPROCESS/s/Wk3bcltfa
2.功能接口介绍:
官网链接:https://ai.baidu.com/ai-doc/IMAGEPROCESS/Uk3bcltn4
3.步骤
(1) 在百度智能云注册账号;
(2) 然后在线申请应用,获得AppID、API Key、 Secret Key;
4.安装使用Python SDK有如下方式:
如果已安装pip,执行pip install baidu-aip即可,
如果需要使用HTTP2,请安装pip install baidu-aip-http2。
如果已安装setuptools,执行python setup.py install即可。
5.代码
from aip import AipImageProcess
import base64
import numpy as np
import cv2
""" 你的 APPID API_KEY SECRET_KEY """
APP_ID = 'xxxx'
API_KEY = 'xxxx'
SECRET_KEY = 'xxxx'
client = AipImageProcess(APP_ID, API_KEY, SECRET_KEY)
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
""" base64图片解码 """
def base64_to_image(base64_code):
# base64解码
img_data = base64.b64decode(base64_code)
# 转换为np数组
img_array = np.frombuffer(img_data, np.uint8)
# 转换成opencv可用格式
img = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR)
return img
img_path = r'.../img.jpg'
ori_img = cv2.imread(img_path)
image = get_file_content(img_path)
# """ 调用图像无损放大 """
# img = client.imageQualityEnhance(image)
# """ 调用黑白图像上色 """
# img = client.colourize(image)
# """ 调用图像对比度增强 """
# img = client.contrastEnhance(image)
# """ 调用图像清晰度增强 """
img = client.imageDefinitionEnhance(image)
img = img['image']
show_img = base64_to_image(img)
# imgs = np.hstack([ori_img,show_img])
# cv2.imshow('img',imgs)
cv2.imwrite('%s.jpg'%(img_path.split('.')[0]+'2'),show_img,[cv2.IMWRITE_JPEG_QUALITY, 100])
6.可能出现的问题
报错一:aip no have attribute AipImageProcess
这个报错原因很有可能是aip的版本过低或者aip不是baidu-aip
解决方法: 先pip uninstall aip在重新安装pip install baidu-aip即可
报错二:‘AipImageProcess’ object has no attribute 'imageDefinitionEnhance’
查看了该函数的定义代码发现确实没有定义该函数,很有可能也是版本问题
解决方法:
打开aip库的imageprocess.py文件,将该函数的API链接定义上,链接可见步骤三截图
模仿其他函数的定义方法,定义该函数即可。