您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用Python識別花卉種類并自動整理分類”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么用Python識別花卉種類并自動整理分類”文章能幫助大家解決問題。
百度的圖像識別接口,可以精準識別超過十萬種物體和場景,包含10余項高精度的識圖能力并提供相應的API服務。
我們按照步驟創建新應用,并得到專屬自己的API Key和Secret Key,具體如下圖所示。
圖像識別提供一個組合API接口,支持多種垂類識別服務的靈活組合調用,這里只需要調用植物識別就可以滿足需求。
如何Python調用百度圖像識別API接口?
第一步,調用鑒權接口獲取token。
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)
第二步,識別圖像種類
在交互式環境中輸入如下命令:
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=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識別花卉種類并自動整理分類”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。