此功能的實作其實非常簡單,主要是在Python中呼叫了百度AI開放平臺的影像特效[人像動漫化]API,其實在各種編程環境下都可,之前也嘗試過MATLAB中使用語音識別的API,效果同樣穩定,

實作步驟1:獲取Access_Token
注冊一個開發者賬號后,登錄進入控制臺,找到影像增強與特效的應用并創建一個個人應用作為示例:

之后按照官方給出的技術檔案基本上就能完成80%了,
首先在py腳本中運行并獲取Access_Token:
# encoding:utf-8
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())
其中【官網獲取的AK】替換為"引號中復制進你的API Key",【官網獲取的SK】替換為"引號中復制進你的Secret Key".

回傳引數:

其中的access_token一行就是我們要的結果,復制引號中的內容,
步驟2:讀取本地圖片并請求介面回應
# encoding:utf-8
import requests
import base64
import os
request_url = "https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime"
# 二進制方式打開圖片檔案
f = open('a4.jpg', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = '24.2d63349d5951b2cd887327657f7246c1.2592000.1614345584.282335-23601878'
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())
將access_token中的內容替換為上一步得到的,并將f = open(‘a4.jpg’, ‘rb’) 中的圖片替換為自己的,圖片位置與py腳本放在一個工程目錄即可;
回傳引數:
按照官方檔案說明,將回傳處理后圖片的Base64編碼(字典中image對應的內容),而非直接生成處理后的圖片,
步驟3:Base64編碼轉圖片
實際圖片生成的Base64編碼將會很長,給你感受一下(* ̄︶ ̄)

所以起初我想將其直接復制進某在線Base64編碼轉圖片的網頁上時,還會報錯…
這里在程式最后加上一段譯碼功能,將其轉換為處理后的圖片:
img_str = response.json()['image']
img_data = base64.b64decode(img_str)
# 注意:如果是"data:image/jpg:base64,",那你保存的就要以png格式,如果是"data:image/png:base64,"那你保存的時候就以jpg格式,
with open('001.jpg', 'wb') as f:
f.write(img_data)
運行完之后,就可以在當前工程目錄下查看到你想要的圖片啦~O(∩_∩)O

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/253481.html
標籤:python
上一篇:【高級開發進階】6.4 CAS
下一篇:pip里面已經下載好的庫,但是conda list里面找不到/pip安裝了包但pycharm里找不到(pip如何安裝到conda下)
