Python怎么实现识别花卉种类(python,开发技术)

时间:2024-05-02 22:34:01 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

由于对很多花不是特别熟悉,所以我们需要借助软件来识别究竟是什么花的种类。市面上的识花软件有很多,比如花伴侣、形色、百度等等,我测试后发现百度的识别效果最为优秀。于是我就有了一个想法,能不能批量调用百度的接口,对花卉照片进行识别并分类呢?

Python怎么实现识别花卉种类

百度图像识别

百度的图像识别接口,可以精准识别超过十万种物体和场景,包含10余项高精度的识图能力并提供相应的API服务。

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

Python怎么实现识别花卉种类

我们按照步骤创建新应用,并得到专属自己的API Key和Secret Key,具体如下图所示。

Python怎么实现识别花卉种类

图像识别提供一个组合API接口,支持多种垂类识别服务的灵活组合调用,这里只需要调用植物识别就可以满足需求。

如何Python调用百度图像识别API接口?

第一步,调用鉴权接口获取token。

API_Key='**********'Secret_Key='**********'defget_access_token(API_Key,Secret_Key):host='**********'response=requests.get(host)returnresponse.json()['access_token']access_token=get_access_token(API_Key,Secret_Key)

第二步,识别图像种类

Python怎么实现识别花卉种类

在交互式环境中输入如下命令:

importrequestsimportbase64request_url='**********'#二进制方式打开图片文件f=open(r'D:\下载\QQ截图20220407203203.png','rb')img=base64.b64encode(f.read())params={"image":img}request_url=request_url+"?access_token="+access_tokenheaders={'content-type':'application/x-www-form-urlencoded'}response=requests.post(request_url,data=params,headers=headers)ifresponse:print(response.json()['result'][0]['name'])

输出:

樱花

调用百度图像识别接口的返回参数如下图所示,对我们来说,只需要其中的name(植物名称)参数。

Python怎么实现识别花卉种类

读取照片文件

我将拍摄的照片存放在D:\下载\花卉合集路径下,所以需要使用os模块进行读取文件列表,方便进行后续的批量操作。

在交互式环境中输入如下命令:

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

输出:

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

os模块中的listdir()⽅法,接收⼀个路径参数path,返回的是该路径下所有⽂件的⽂件名组成的列表。这样,我们就获取了该路径下所有的花卉图片文件名,如下图所示。

Python怎么实现识别花卉种类

整理分类照片

接着,我们便可以使用for循环语句,依次对花卉照片进行图像识别,并按照识别出的名称进行分类整理到对应的文件夹中。

在交互式环境中输入如下命令:

foriinfilenames:flower_name=get_fname(i)file_path=os.path.join(path,i)folder_path=os.path.join(path,flower_name)ifnotos.path.exists(folder_path):os.mkdir(folder_path)shutil.move(file_path,folder_path)

其中get_fname()函数,是我们将前文中百度图像识别代码封装为一个自定义函数,此处调用即可返回得到照片对应的花卉名称flower_name

后续的代码与之前分享过的自动分类整理文件几乎一致,即if判断是否已经存在对应花卉名称的文件夹,若不存在则创建。最后,调用shutil模块移动花卉照片至对应文件夹。

具体执行效果,如下方动图所示。

Python怎么实现识别花卉种类

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python怎么实现识别花卉种类的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vue子组件怎么使用父组件传过来的值下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18