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中的reduce内建函数使用方法指南
Aug 31 Python
Python 专题一 函数的基础知识
Mar 16 Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
Python标准库inspect的具体使用方法
Dec 06 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
python 动态调用函数实例解析
Oct 21 Python
python代码如何注释
Jun 01 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
Python sublime安装及配置过程详解
Jun 29 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
pytorch中的numel函数用法说明
May 13 Python
请求模块urllib之PYTHON爬虫的基本使用
用Python仅20行代码编写一个简单的端口扫描器
Python实现视频自动打码的示例代码
Apr 08 #Python
Python OpenCV实现图形检测示例详解
Python语法学习之进程的创建与常用方法详解
基于PyQt5制作一个群发邮件工具
Python&Matlab实现樱花的绘制
You might like
isset和empty的区别
2007/01/15 PHP
php session 检测和注销
2009/03/16 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
Git命令之分支详解
2021/03/02 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
对python中Json与object转化的方法详解
2018/12/31 Python
django富文本编辑器的实现示例
2019/04/10 Python
详解爬虫被封的问题
2019/04/23 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
2014年9.18纪念日演讲稿
2014/09/14 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js