利用python调用百度api实现黑白图像处理

说到图像处理,我们可以想到OpenCV、人工智能等词汇。如果想要深入研究图像识别算法,确实离不开这些工具;但如果只是为了能更加简单地实现图像处理的功能,则可以选择借助第三方平台——百度AI开放平台来实现。本文将利用python连接百度api来处理黑白图像。

利用python调用百度api实现黑白图像处理

  • 一、创建黑白图像处理应用
  • 二、获取黑白图像上色接口
  • 三、编写黑白图像上色程序
  • 四、处理后的结果展示
  • 五、程序的优点与缺点

一、创建黑白图像处理应用

  1. 在百度中搜索百度AI,并进入百度AI开放平台。点击开放能力-图像技术-黑白图像上色
    利用python调用百度api实现黑白图像处理_第1张图片
  2. 系统将会跳转到黑白图像上色的页面,然后点击立即使用。登录或者注册一个百度智能云的账号即可使用该功能。
    利用python调用百度api实现黑白图像处理_第2张图片
  3. 登录账号后会跳转到控制台页面。如果是新注册的用户,先点击领取免费资源,实名认证后即可以领取免费赠送的API调用次数(期间需要等待10-30分钟),能显示出调用量限制就说明免费资源领取成功。资源领取成功后,点击创建应用。
    利用python调用百度api实现黑白图像处理_第3张图片
  4. 输入应用名称和应用描述后点击立即创建。
    利用python调用百度api实现黑白图像处理_第4张图片
  5. 成功创建应用后,将会得到APPID、API Key、Secret Key。请妥善保存,后续操作将会用到这些信息。
    利用python调用百度api实现黑白图像处理_第5张图片

二、获取黑白图像上色接口

  1. 再次回到黑白图像上色的页面,点击技术文档
    利用python调用百度api实现黑白图像处理_第6张图片

  2. 技术文档里面包含了API文档和SDK文档。这里选择SDK文档,点击pythonSDK文档-快速入门,得到图像增强与特效的Python SDK客户端的代码,它可以为使用图像增强与特效的开发人员提供了一系列的交互方法。
    利用python调用百度api实现黑白图像处理_第7张图片

  • 代码如下(APPID、API Key、Secret Key就是上文成功创建应用后得到的信息):
from aip import AipImageProcess

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipImageProcess(APP_ID, API_KEY, SECRET_KEY)
  1. 之后点击接口说明-黑白图像上色,就会自动跳转到该接口的代码处。
    利用python调用百度api实现黑白图像处理_第8张图片
  • 代码如下:
""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

image = get_file_content('example.jpg')

""" 调用黑白图像上色 """
client.colourize(image);

三、编写黑白图像上色程序

  1. 得到接口代码后就可以编写程序来实现黑白图像上色的功能了。但是从接口说明中的返回示例可以看到,接口返回的结果是base64的字符串。
    利用python调用百度api实现黑白图像处理_第9张图片
  • base64的字符串是无法直接生成图像的,所以需要编写一个编码转换的代码让其转为图片。代码如下:
    (具体参考:https://blog.csdn.net/u010429424/article/details/79068833)
def color():
    with open("处理后的图像3.jpg","wb") as f:
        image1 = client.colourize(image)["image"]
        f.write(base64.b64decode(image1))
  • 完整的程序代码如下:
#新建AipImageProcess

from aip import AipImageProcess

""" 你的 APPID AK SK """
APP_ID = '*********'
API_KEY = '*****'
SECRET_KEY = '****************'

client = AipImageProcess(APP_ID, API_KEY, SECRET_KEY)


""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

image = get_file_content('3.jpg')

""" 调用黑白图像上色 """
def color():
    with open("处理后的图像3.jpg","wb") as f:
        image1 = client.colourize(image)["image"]
        f.write(base64.b64decode(image1))


if __name__ == '__main__':
    color()     

四、处理后的结果展示

  • 图像1处理前

  • 图像1处理后
    利用python调用百度api实现黑白图像处理_第10张图片

  • 图像2处理前
    利用python调用百度api实现黑白图像处理_第11张图片

  • 图像2处理后
    利用python调用百度api实现黑白图像处理_第12张图片

  • 图像3处理前

  • 图像3处理后
    利用python调用百度api实现黑白图像处理_第13张图片

五、程序的优点与缺点

  • 优点
  1. 程序简单且容易上手,通过几行代码便可实现黑白图像上色的功能。
  2. 上色的颜色与实物的颜色较为接近。
  • 缺点

本程序只能一张一张图上色,不能实现多张图同时上色的功能。

你可能感兴趣的:(python,图像处理)