Python识别花卉种类鉴定网络热门植物并自动整理分类


Posted in Python onApril 08, 2022

大家好,我是小五

“无穷小亮的科普日常”经常会发布一些鉴定网络热门生物视频,既科普了生物知识,又满足观众们的猎奇心理。今天我们也来鉴定一下网络热门植物!最近春天很多花都开了,我正好趁着清明假期到户外踏青并拍摄了不少花卉的照片。

Python识别花卉种类鉴定网络热门植物并自动整理分类

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

Python识别花卉种类鉴定网络热门植物并自动整理分类

百度图像识别

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

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

Python识别花卉种类鉴定网络热门植物并自动整理分类

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

Python识别花卉种类鉴定网络热门植物并自动整理分类

图像识别提供一个组合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)

第二步,识别图像种类

Python识别花卉种类鉴定网络热门植物并自动整理分类

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

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(植物名称)参数。

Python识别花卉种类鉴定网络热门植物并自动整理分类

读取照片文件

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

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

import os
path = "D:\下载\花卉合集"

filenames = os.listdir(path)
filenames

输出:

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

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

Python识别花卉种类鉴定网络热门植物并自动整理分类

整理分类照片

接着,我们便可以使用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识别花卉种类鉴定网络热门植物并自动整理分类

以上就是Python实现识别花卉种类的示例代码的详细内容,更多关于Python识别花卉种类的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python translator使用实例
Sep 06 Python
python计算最大优先级队列实例
Dec 18 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Python中字符串对象语法分享
Feb 24 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 Python
请求模块urllib之PYTHON爬虫的基本使用
用Python仅20行代码编写一个简单的端口扫描器
Python实现视频自动打码的示例代码
Apr 08 #Python
Python OpenCV实现图形检测示例详解
Python语法学习之进程的创建与常用方法详解
基于PyQt5制作一个群发邮件工具
Python&Matlab实现樱花的绘制
You might like
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PHP中的函数声明与使用详解
2017/05/27 PHP
使用js实现雪花飘落效果
2013/08/26 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
vue使用Proxy实现双向绑定的方法示例
2019/03/20 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
python开发之字符串string操作方法实例详解
2015/11/12 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
python unittest实现api自动化测试
2018/04/04 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
python中实现栈的三种方法
2020/12/19 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
投标邀请书范文
2014/01/31 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python