自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這個好玩!用Python識別花卉種類,并自動整理分類!

開發(fā) 后端
由于對很多花不是特別熟悉,所以我們需要借助軟件來識別究竟是什么花的種類。市面上的識花軟件有很多,比如花伴侶、形色、百度等等,我測試后發(fā)現百度的識別效果最為優(yōu)秀。

“無窮小亮的科普日常”經常會發(fā)布一些鑒定網絡熱門生物視頻,既科普了生物知識,又滿足觀眾們的獵奇心理。今天我們也來鑒定一下網絡熱門植物!最近春天很多花都開了,我正好趁著清明假期到戶外踏青并拍攝了不少花卉的照片。

由于對很多花不是特別熟悉,所以我們需要借助軟件來識別究竟是什么花的種類。市面上的識花軟件有很多,比如花伴侶、形色、百度等等,我測試后發(fā)現百度的識別效果最為優(yōu)秀。于是我就有了一個想法,能不能批量調用百度的接口,對花卉照片進行識別并分類呢?(完整代碼見文末)

百度圖像識別

百度的圖像識別接口,可以精準識別超過十萬種物體和場景,包含10余項高精度的識圖能力并提供相應的API服務。

??https://cloud.baidu.com/product/imagerecognition ??

我們按照步驟創(chuàng)建新應用,并得到專屬自己的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)

第二步,識別圖像種類

在交互式環(huán)境中輸入如下命令:

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模塊進行讀取文件列表,方便進行后續(xù)的批量操作。

在交互式環(huán)境中輸入如下命令:

import os
path = "D:\下載\花卉合集"
filenames = os.listdir(path)
filenames

輸出

['QQ截圖20220405223301.png',
'QQ截圖20220405223320.png',
......
'微信圖片_20220405225020.jpg',
'微信圖片_20220405225023.jpg']

os模塊中的listdir()?法,接收?個路徑參數path,返回的是該路徑下所有?件的?件名組成的列表。這樣,我們就獲取了該路徑下所有的花卉圖片文件名,如下圖所示。

整理分類照片

接著,我們便可以使用for循環(huán)語句,依次對花卉照片進行圖像識別,并按照識別出的名稱進行分類整理到對應的文件夾中。

在交互式環(huán)境中輸入如下命令:

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。

后續(xù)的代碼與之前分享過的自動分類整理文件幾乎一致,即if判斷是否已經存在對應花卉名稱的文件夾,若不存在則創(chuàng)建。最后,調用shutil模塊移動花卉照片至對應文件夾。

具體執(zhí)行效果,如下方動圖所示。


責任編輯:龐桂玉 來源: 菜鳥學Python
相關推薦

2024-01-29 08:32:10

Python驗證碼識別

2023-11-07 09:39:10

Python壁紙桌面

2023-02-07 08:01:57

Python工具桌面

2023-12-25 12:59:00

PaddleOCR深度學習開發(fā)

2015-06-03 15:33:10

HDFS分布式文件操作匯總

2010-03-18 14:02:37

Python空對象整理

2024-03-08 12:04:22

PythonPillow驗證碼

2018-11-06 21:00:09

Python編程語言人臉識別

2021-04-09 20:49:44

PythonOCR圖像

2023-12-14 12:42:42

2019-11-20 12:30:21

Python編程語言語音識別

2023-12-13 09:22:40

python

2022-03-21 10:09:08

PythonExcel郵件

2024-01-11 10:22:20

AI代碼生成工具前端

2022-12-28 08:59:11

2022-07-12 10:48:27

Python數據日報命令

2020-04-09 09:52:42

Python數據技術

2024-11-26 00:41:23

Python編程腳本

2018-04-24 10:45:00

Python人工智能圖像識別

2022-05-25 07:11:13

Python人臉識別代碼
點贊
收藏

51CTO技術棧公眾號