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单链表实现代码实例
Nov 21 Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
快速入门python学习笔记
Dec 06 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
教你用Python写安卓游戏外挂
Jan 11 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 Python
详解Python3序列赋值、序列解包
May 14 Python
Python Collatz序列实现过程解析
Oct 12 Python
python中if及if-else如何使用
Jun 02 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
请求模块urllib之PYTHON爬虫的基本使用
用Python仅20行代码编写一个简单的端口扫描器
Python实现视频自动打码的示例代码
Apr 08 #Python
Python OpenCV实现图形检测示例详解
Python语法学习之进程的创建与常用方法详解
基于PyQt5制作一个群发邮件工具
Python&Matlab实现樱花的绘制
You might like
PHP 反向排序和随机排序代码
2010/06/30 PHP
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
python类装饰器用法实例
2015/06/04 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python将字符串转换成json的方法小结
2019/07/09 Python
聊聊python中的循环遍历
2020/09/07 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
门店业绩提升方案
2014/06/08 职场文书
学校周年庆活动方案
2014/08/22 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
婚前协议书范本
2014/10/27 职场文书
七年级作文之冬景
2019/11/07 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS