怎么會有人不喜歡花呢?今天我們也來鑒定一下網路熱門植物!最近春天很多花都開了,我正好趁著清明假期到戶外踏青并拍攝
了不少花卉的照片,
由于對很多花不是特別熟悉,所以我們需要借助軟體來識別究竟是什么花的種類,市面上的識花軟體有很多,比如花伴侶、形
色、百度等等,我測驗后發現百度的識別效果最為優秀,于是我就有了一個想法,能不能批量呼叫百度的介面,對花卉照片進行
識別并分類呢?

百度影像識別
百度的影像識別介面,可以精準識別超過十萬種物體和場景,包含10余項高精度的識圖能力并提供相應的API服務,
https://cloud.baidu.com/product/imagerecognition

我們按照步驟創建新應用,并得到專屬自己的API Key和Secret Key,具體如下圖所示,
影像識別提供一個組合API介面,支持多種類識別服務的靈活組合呼叫,這里只需要呼叫植物識別就可以滿足需求,
如何Python呼叫百度影像識別API介面?
第一步,呼叫鑒權介面獲取token,
Python學習交流Q群:906715085### API_Key = '**********' Secret_Key = '**********' def get_access_token(API_Key,Secret_Key): host = '**********' response = requests.get(host) return response.json()['access_token'] access_token = get_access_token(API_Key,Secret_Key)
第二步,識別影像種類
在互動式環境中輸入如下命令:
Python學習交流Q群:906715085#### import requests import base64 request_url = '**********' # 二進制方式打開圖片檔案 f = open(r'D:\下載\QQ截圖20220407203203.png', 'rb') img = base64.b64encode(f.read()) params = {"image":img} request_url = request_url + "?access_token=" + access_token headers = {'content-type': 'application/x-www-form-urlencoded'} response = requests.post(request_url, data=https://www.cnblogs.com/123456feng/archive/2022/04/18/params, headers=headers) if response: print (response.json()['result'][0]['name'])
輸出:
櫻花
呼叫百度影像識別介面的回傳引數如下圖所示,對我們來說,只需要其中的name(植物名稱)引數,

讀取照片檔案
我將拍攝的照片存放在D:\下載\花卉合集路徑下,所以需要使用os模塊進行讀取檔案串列,方便進行后續的批量操作,
在互動式環境中輸入如下命令:
import os path = "D:\下載\花卉合集" filenames = os.listdir(path) filenames
輸出:
['QQ截圖20220405223301.png', 'QQ截圖20220405223320.png', ...... '微信圖片_20220405225020.jpg', '微信圖片_20220405225023.jpg']
os模塊中的listdir()?法,接收?個路徑引數path,回傳的是該路徑下所有?件的?件名組成的串列,這樣,我們就獲取了該路徑
下所有的花卉圖片檔案名,如下圖所示,

整理分類照片
接著,我們便可以使用for回圈陳述句,依次對花卉照片進行影像識別,并按照識別出的名稱進行分類整理到對應的檔案夾中,
在互動式環境中輸入如下命令:
for i in filenames: flower_name = get_fname(i) file_path = os.path.join(path,i) folder_path = os.path.join(path,flower_name) if not os.path.exists(folder_path): os.mkdir(folder_path) shutil.move(file_path,folder_path)
其中get_fname()函式,是我們將前文中百度影像識別代碼封裝為一個自定義函式,此處呼叫即可回傳得到照片對應的花卉名稱
flower_name,
后續的代碼與之前分享過的自動分類整理檔案幾乎一致,即if判斷是否已經存在對應花卉名稱的檔案夾,若不存在則創建,最后,
呼叫shutil模塊移動花卉照片至對應檔案夾,
具體執行效果,如下方動圖所示

最后
大家都去動手試試,這么好的一個發明不得炫起來,今天的分享到這里就結束了,喜歡的小伙伴記得點贊收藏,不懂的小伙伴記
得點贊評論,關注我一起學Python,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/458503.html
標籤:其他
