这个好玩!用Python识别花卉种类,并自动整理分类!

news/2024/10/30 9:32:17/

788682c9c65dccb282d18d1d72568dac.png

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

503577f4ae4b05f52cac05eb394c4b94.png

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

4910a98392d46661900b46b75ff269e1.png

百度图像识别

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

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

a71448efa9e9a2c8b2b1ace7795df0c1.png

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

16659a87ccfb73977b1f5f5cc4db1b09.png

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

第二步,识别图像种类

fbee1bdfa130a8fb0643a61b4ccded73.png

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

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

8e3787bc08095c2262ca32b195ff6446.png

读取照片文件

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

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

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

输出:

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

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

34210c805d3206dcc0eb54ef5bcf353b.png

整理分类照片

接着,我们便可以使用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模块移动花卉照片至对应文件夹。

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

e1e95b1588d7a3bde9fcc220a665bba9.gif

这是我开发的机器人公众号小号,目前增加了天气查询,955公司名单,关注时间查询;后面还会增加图片功能和每日送书抽奖送书活动,以及调戏功能,欢迎来体验,捧场。

一个机器人公众号已经上线,欢迎调戏

 
推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 

  • 4).80行代码!用Python做一个哆来A梦分身 

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷 

  • 6).30个Python奇淫技巧集 

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看B站我的视频!


http://www.ppmy.cn/news/281079.html

相关文章

吸收甲醛作用的植物花卉

据有吸收甲醛作用的植物花卉有:芦荟、虎尾兰、吊兰、 鸭跖草、 菊花、铁树、君子兰、常春藤、金绿萝、梅花、美人蕉、龙舌兰、扶郎花。 吊兰 特性:养殖容易,适应性强,最为传统的居室垂挂植物之一。它叶片细长柔软,从叶…

互联网专用计算机屏保,18个Windows 98屏保,简直怀念!

Windows 98可谓是整整一代人的回忆,虽然雷锋网小编当时年纪还小(够了),但那些销魂的电脑屏保,至今依然记忆犹新。这18个屏保,已经按照人气排列好了,大家一起来看看吧! 【棒球比赛】:这个屏保一出现,引发了一大波运动爱好者的吐槽:“噢,搞了半天你就是想告诉我棒球长啥…

去处甲醛的十大植物高手

芦荟:多年生常绿多肉植物,茎节较短,直立,叶肥厚,多汁,披针形。喜温暖、干燥气候,耐寒能力不强,不耐阴。它不仅是吸收甲醛的好手,而且具有很强的药用价值,如有…

这部纪录片央视发力了,每一帧都可以当壁纸,BBC也无法超越

全世界只有3.14 % 的人关注了 爆炸吧知识 地球上已知的植物有三十多万种,其中十分之一生长在中国。这些植物不仅为中国带来福祉,还不断迁徙到世界各地。在人类的不懈努力下,它们又获得了新的姿态,为不同的文明带来不一样的色彩。 …

微信抖音工具箱头像制作壁纸小程序带改图制图流量主功能搭建动态社群人脉助手

这是一款多功能姓氏头像制作小程序源码,全新UI带头像库支持多流量主模式,支持N种模板制作生成,包含10大吸粉功能,引流效果杠杠的!亲测强烈分享给大家 主要功能如下: 1.自带多种精美头像姓氏制作模板&#…

C++基础(三) —— 内存分配

文章目录 概念物理地址内存的分配与释放虚拟用户进程空间内存的分配与释放 allocator模板类new deletemalloc freestrcpy 与 memcpy 与 memsetstrcpymemcpymemset 概念 物理地址内存的分配与释放 主要采用链表结构 使用了一个名叫page的结构体管理物理内存,结构体…

乌云 drops_免费赠品发布:“ Drops of Gold”壁纸

像元素一样,金的颜色在自然界中是罕见的发现-这使得它变得更加可取。 只需在秋季的高峰期对植物进行简单的拍照即可,只需对其进行一些微调,并对其进行精细的颜色更改即可使其特别捕捉到可以描述为黄金时刻的事物。 这款“ Drops of Gold”壁…

线条边框简笔画图片大全_植物简笔画素材大全赶紧收藏起来,一定用的上!

点击上方“实用文章”关注我们,定期为您推送精彩实用的文章。 植物简笔画素材大全赶紧收藏起来,一定用的上! 花简笔画 向日葵简笔画 梅花简笔画 怎么画牵牛花简笔画 怎么画荷花简笔画 菊花简笔画怎么画 仙人掌简笔画 康乃馨简笔画 植物简笔画…