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类型强制转换long to int的代码
Feb 10 Python
python中as用法实例分析
Apr 30 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Python IDLE入门简介
Dec 08 Python
Tornado高并发处理方法实例代码
Jan 15 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 Python
Python字典的基础操作
Nov 01 Python
请求模块urllib之PYTHON爬虫的基本使用
用Python仅20行代码编写一个简单的端口扫描器
Python实现视频自动打码的示例代码
Apr 08 #Python
Python OpenCV实现图形检测示例详解
Python语法学习之进程的创建与常用方法详解
基于PyQt5制作一个群发邮件工具
Python&Matlab实现樱花的绘制
You might like
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
在Python中使用dict和set方法的教程
2015/04/27 Python
理解python中生成器用法
2017/12/20 Python
Python之web模板应用
2017/12/26 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
Python实现的读写json文件功能示例
2018/06/05 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
Python图片的横坐标汉字实例
2019/12/04 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
python开发前景如何
2020/06/11 Python
简单的Python人脸识别系统
2020/07/14 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
捐助倡议书范文
2014/04/15 职场文书
党员承诺践诺书
2014/05/20 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python