效果:

全篇分为以下几个部分:

目录

一、进入百度AI开放平台创建动物识别应用

二、用代码获取access_token

三、实现动物识别的功能实现

四、动物识图UI_demo


一、进入百度AI开放平台创建动物识别应用

连接:动物识别_拍照识别动物-百度AI开放平台

登陆后操作步骤如图:

创建完成后如图所示:

此处的API KeySecret Key是之后需要用上的内容

二、用代码获取access_token

调用API首先要获取access_token,它通过API KeySecret Key获得

实现代码如下:

import requests# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【此处填API Key】&client_secret=【此处填Secret Key】'
response = requests.get(host)
if response:print(response.json())

运行后可在结果中找到access_token的值

记录下access_token的值

三、实现动物识别的功能实现

代码如下:

request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/animal"# 二进制方式打开图片文件
f = open('test7.png', 'rb')        #这里是你的图片路径
img = base64.b64encode(f.read())
f.close()
params = {"image":img,"top_num": 3} #返回前3个概率比较大的
access_token = '这里放access_token的值'
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())

运行结果:

由此便实现了百度AI动物识图API的调用了

四、动物识图UI_demo

下面是完整的代码实现


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
import requests
import base64class Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")#MainWindow.setWindowIcon(QIcon('..\icons\zhenyanglog.png'))MainWindow.resize(1025, 600)MainWindow.setFixedSize(1025, 600)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(10, 0, 1001, 31))self.label.setObjectName("label")self.line = QtWidgets.QFrame(self.centralwidget)self.line.setGeometry(QtCore.QRect(10, 25, 1011, 21))self.line.setFrameShape(QtWidgets.QFrame.HLine)self.line.setFrameShadow(QtWidgets.QFrame.Sunken)self.line.setObjectName("line")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(10, 40, 91, 61))self.pushButton.setObjectName("pushButton")self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_4.setGeometry(QtCore.QRect(440, 54, 91, 31))self.pushButton_4.setObjectName("pushButton_4")self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_5.setGeometry(QtCore.QRect(852, 510, 131, 51))self.pushButton_5.setObjectName("pushButton_5")font3 = QFont()font3.setPointSize(17)self.pushButton_5.setFont(font3)self.pushButton.setEnabled(False)#self.pushButton_2.setEnabled(False)#self.pushButton_3.setEnabled(False)# 按钮关联函数self.pushButton.clicked.connect(self.ClickButton1)self.pushButton_4.clicked.connect(self.openImage)self.pushButton_5.clicked.connect(self.clear)self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_4.setGeometry(QtCore.QRect(530, 54, 241, 31))self.lineEdit_4.setObjectName("lineEdit_4")self.line_2 = QtWidgets.QFrame(self.centralwidget)self.line_2.setGeometry(QtCore.QRect(10, 95, 1011, 21))self.line_2.setFrameShape(QtWidgets.QFrame.HLine)self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_2.setObjectName("line_2")self.line_5 = QtWidgets.QFrame(self.centralwidget)self.line_5.setGeometry(QtCore.QRect(-20, 109, 60, 486))self.line_5.setFrameShape(QtWidgets.QFrame.VLine)self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_5.setObjectName("line_5")self.line_6 = QtWidgets.QFrame(self.centralwidget)self.line_6.setGeometry(QtCore.QRect(-10, 34, 38, 71))self.line_6.setFrameShape(QtWidgets.QFrame.VLine)self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_6.setObjectName("line_6")self.line_7 = QtWidgets.QFrame(self.centralwidget)self.line_7.setGeometry(QtCore.QRect(1000, 34, 38, 71))self.line_7.setFrameShape(QtWidgets.QFrame.VLine)self.line_7.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_7.setObjectName("line_7")self.line_8 = QtWidgets.QFrame(self.centralwidget)self.line_8.setGeometry(QtCore.QRect(970, 0, 98, 37))self.line_8.setFrameShape(QtWidgets.QFrame.VLine)self.line_8.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_8.setObjectName("line_8")self.line_9 = QtWidgets.QFrame(self.centralwidget)self.line_9.setGeometry(QtCore.QRect(-10, 0, 38, 33))self.line_9.setFrameShape(QtWidgets.QFrame.VLine)self.line_9.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_9.setObjectName("line_9")self.line_10 = QtWidgets.QFrame(self.centralwidget)self.line_10.setGeometry(QtCore.QRect(10, 10, 1011, 46))self.line_10.setFrameShape(QtWidgets.QFrame.HLine)self.line_10.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_10.setObjectName("line_10")self.line_11 = QtWidgets.QFrame(self.centralwidget)self.line_11.setGeometry(QtCore.QRect(10, -9, 1011, 22))self.line_11.setFrameShape(QtWidgets.QFrame.HLine)self.line_11.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_11.setObjectName("line_11")self.line_13 = QtWidgets.QFrame(self.centralwidget)self.line_13.setGeometry(QtCore.QRect(10, 95, 801, 31))self.line_13.setFrameShape(QtWidgets.QFrame.HLine)self.line_13.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_13.setObjectName("line_13")self.line_15 = QtWidgets.QFrame(self.centralwidget)self.line_15.setGeometry(QtCore.QRect(10, 566, 801, 61))self.line_15.setFrameShape(QtWidgets.QFrame.HLine)self.line_15.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_15.setObjectName("line_15")self.line_16 = QtWidgets.QFrame(self.centralwidget)self.line_16.setGeometry(QtCore.QRect(790, 110, 41, 486))self.line_16.setFrameShape(QtWidgets.QFrame.VLine)self.line_16.setFrameShadow(QtWidgets.QFrame.Sunken)self.line_16.setObjectName("line_16")self.label_3 = QtWidgets.QLabel(self.centralwidget)self.label_3.setGeometry(QtCore.QRect(35, 120, 750, 460))self.label_3.setStyleSheet("font:28px;\n""border-style:solid;\n""border-width:1px;\n""border-color:rgb(45, 45, 45);\n""\n""")self.label_3.setText("")self.label_3.setObjectName("label_3")self.label_4 = QtWidgets.QLabel(self.centralwidget)self.label_4.setGeometry(QtCore.QRect(820, 112, 191, 31))font = QtGui.QFont()font.setPointSize(15)font.setBold(False)font.setItalic(False)font.setWeight(50)self.label_4.setFont(font)self.label_4.setObjectName("label_4")self.label_5 = QtWidgets.QLabel(self.centralwidget)self.label_5.setGeometry(QtCore.QRect(820, 170, 191, 41))font = QtGui.QFont()font.setPointSize(11)self.label_5.setFont(font)self.label_5.setLayoutDirection(QtCore.Qt.LeftToRight)self.label_5.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)self.label_5.setWordWrap(True)self.label_5.setObjectName("label_5")self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit.setGeometry(QtCore.QRect(822, 210, 181, 41))font = QtGui.QFont()font.setPointSize(10)self.lineEdit.setFont(font)self.lineEdit.setObjectName("lineEdit")self.label_6 = QtWidgets.QLabel(self.centralwidget)self.label_6.setGeometry(QtCore.QRect(820, 280, 191, 41))font = QtGui.QFont()font.setPointSize(11)self.label_6.setFont(font)self.label_6.setLayoutDirection(QtCore.Qt.LeftToRight)self.label_6.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)self.label_6.setWordWrap(True)self.label_6.setObjectName("label_6")self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_2.setGeometry(QtCore.QRect(822, 320, 181, 41))font = QtGui.QFont()font.setPointSize(10)self.lineEdit_2.setFont(font)self.lineEdit_2.setObjectName("lineEdit_2")self.label_7 = QtWidgets.QLabel(self.centralwidget)self.label_7.setGeometry(QtCore.QRect(820, 390, 191, 41))font = QtGui.QFont()font.setPointSize(11)self.label_7.setFont(font)self.label_7.setLayoutDirection(QtCore.Qt.LeftToRight)self.label_7.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)self.label_7.setWordWrap(True)self.label_7.setObjectName("label_7")self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)self.lineEdit_3.setGeometry(QtCore.QRect(822, 430, 181, 41))font = QtGui.QFont()font.setPointSize(10)self.lineEdit_3.setFont(font)self.lineEdit_3.setObjectName("lineEdit_3")MainWindow.setCentralWidget(self.centralwidget)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def clear(self):self.lineEdit.clear()self.lineEdit_2.clear()self.lineEdit_3.clear()def ClickButton1(self):self.start1()#self.distance()#系统目录方法def initUI(self, Qmodelidx):self.label_3.clear()# 选择本地图片上传def openImage(self):global imgNamepath  # 这里为了方便别的地方引用图片路径,将其设置为全局变量imgNamepath, imgType = QFileDialog.getOpenFileName(self.centralwidget, "选择图片",".","All Files(*);;*.jpg;;*.png")# 通过文件路径获取图片文件,并设置图片长宽为label控件的长、宽print(imgNamepath)img = QtGui.QPixmap(imgNamepath)  # .scaled(self.label_3.width(), self.label_3.height())# 在label控件上显示选择的图片self.label_3.setPixmap(img)self.label_3.setScaledContents(True)# 显示所选图片的路径self.lineEdit_4.setText(imgNamepath)self.pushButton.setEnabled(True)#识别def start1(self):request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/animal"# 二进制方式打开图片文件print(imgNamepath)f = open(imgNamepath, 'rb')img = base64.b64encode(f.read())f.close()params = {"image": img, "top_num": 3}  # 返回前3个概率比较大的access_token = '此处填你的access_token'request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)if response:print(response.json())str_re = str(response.json())str1 = str_re.split("'",29)[5] #百分比str2 = str_re.split("'", 29)[9] #结果1str3 = str_re.split("'", 29)[13]  # 百分比str4 = str_re.split("'", 29)[17]  # 结果2str5 = str_re.split("'", 29)[21]  # 百分比str6 = str_re.split("'", 29)[25]  # 结果3self.lineEdit.setText(str2 + " 概率:" + str(str1))self.lineEdit_2.setText(str4 + " 概率:" + str(str3))self.lineEdit_3.setText(str6 + " 概率:" + str(str5))def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "图像识别"))self.label.setText(_translate("MainWindow", "识别UI界面"))self.pushButton.setText(_translate("MainWindow", "识别图像"))self.pushButton_5.setText(_translate("MainWindow", "清空数据"))self.label_4.setText(_translate("MainWindow", "数据展示:"))self.label_5.setText(_translate("MainWindow", "识别结果1:"))self.label_6.setText(_translate("MainWindow", "识别结果2:"))self.label_7.setText(_translate("MainWindow", "识别结果3:"))self.pushButton_4.setText(_translate("MainWindow", "选择图片"))import sys
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show()sys.exit(app.exec_())

动物识图UI_demo相关推荐

  1. 识图在线识图_性感AI,在线赋能小程序

    近日,为促进人工智能与实体经济的深度融合,进一步推进国家新一代人工智能开放创新平台建设,推动我国人工智能技术创新和产业发展,科技部制定了<国家新一代人工智能开放创新平台建设工作指引>.该指 ...

  2. vivo分屏_智慧识图+智慧投屏,vivo多项功能轻松提高宅家工作效率

    在最近这个特殊时期里,为了自身和家人的安全,很多朋友都已经在家里呆了有一个月的时间了.在家时间长了,很多人都表示这样的日子真的是太枯燥了,每天在家里都是重复着吃饭.睡觉.看剧和打游戏的生活.其实要让宅 ...

  3. 经纬度绘图_【知识科普】地形图图例汇总,测绘人识图绘图必备(含dwg版下载)...

    地形图(topographic map)指的是地表起伏形态和地理位置.形状在水平面上的投影图.具体来讲,将地面上的地物和地貌按水平投影的方法(沿铅垂线方向投影到水平面上),并按一定的比例尺缩绘到图纸上 ...

  4. 民用建筑工程给水排水设计深度图样_「安装工程识图」建筑给水排水施工图的识读方法...

    建筑给水排水施工图的组成 建筑给水排水施工图是进行给水排水工程施工的指导性文件,它采用图形符号.文字标注.文字说明相结合的形式,将建筑中给水排水管道的规格.型号.安装位置.管道的走向布置以及用水设备等 ...

  5. 建筑电气工程设计常用图形和文字符号_怎么看懂建筑电气工程图?用最直白方式,教你基础识图!超级详细...

    ​如何看懂建筑电气工程图?我们可能知道AutoCAD,也可能知道在迅捷CAD图库下载建筑电气工程图纸,还可能会使用CAD绘制简单的图形对象.但是,当我们需要进行建筑识图的时候,你也可能连里面的经典图纸 ...

  6. 建筑电气工程设计常用图形和文字符号_想要识图无忧?电气工程图图形符号全能图解,电工最爱识图助手...

    想要识图无忧?电气工程图图形符号全能图解,电工最爱识图助手! 建筑工程图纸上,总是有各种各样的图形符号,复杂多样,数量众多,难免使人疑惑,有时候难以区分.但是如果图形符号记不全,工程图纸识读也会受到影 ...

  7. 符号说明表怎么做_电气新手搞不定电气识图怎么办?别慌!8套电气识图教程,秒上手...

    一个电气新手来说第一次看电气图,普遍会存在看不懂,搞不清设计图怎么看这样的一个问题!那么要怎么进行解决呢?第一次看图电气图需要做哪些准备工作呢? 要做到会看图和看懂图,首先应掌握识图的基本知识,即应当 ...

  8. goip技术原理图解_图解电工识图一看就懂

    点击"电工电气学习"关注即可免费订阅! 图解电工识图一看就懂 出版时间:2015内容简介<图解电工识图一看就懂>采用图解的形式,系统介绍了电工识图基础知识.低压电器与电 ...

  9. 数独游戏技巧从入门到精通_工程施工图识图方法和技巧,使你从建筑施工入门到精通!...

    工程施工图识图方法和技巧,使你从建筑施工入门到精通! 施工图纸是施工和验收的主要依据之一.在项目开工前要求施工人员必须充分领会设计意图.熟悉设计内容.正确施工,确保施工质量, 必须在开工前进行图纸会检 ...

最新文章

  1. 最基础的绑定服务步骤
  2. Linux系统中sysctl命令详解 sysctl -p、sysctl -a、sysctl -w
  3. C语言指针入门 《C语言非常道》
  4. 算法与数据结构(python):分治与归并排序
  5. mysql odbc安装提示找不到ian_如何解决mysql odbc安装丢失的问题
  6. expect脚本的简单应用
  7. python输出引号内的变量值_引号中的Python变量值
  8. 第 1 章 MybatisPlus 快速入门
  9. word2016点击关闭后卡死问题
  10. 唐山初中计算机考试知识点,画法几何点知识点及考点.doc
  11. android studio svn 忽略文件
  12. 17-03-21 课堂笔记
  13. ASO优化选词:三种方法教你精准定位关键词
  14. 用C#获取系统中的临时文件夹或windows安装文件夹
  15. 【思维导图】redis详解
  16. 通过数字抖动实现更高精度的PWM脉宽控制
  17. tig只看某个作者的提交
  18. MySQL8 免安装版安装
  19. 关于苹果手机打开钉钉小程序中处理的日期显示invalid date
  20. Linux内核2.6.34.14添加系统调用及编译方法(CentOS-6.4-x86_64)

热门文章

  1. 国产安路FPGA 替代
  2. host切换工具——SwitchHosts
  3. idea中添加类、方法注释,快捷键设置
  4. sublime markdown环境下画图 (使用Graphviz)配置教程
  5. 数据库 Oracle分区介绍
  6. Python奇技淫巧
  7. 【CTF】梦之光芒/Monyer的游戏闯关记录
  8. js 获取浏览器高度和宽度值(兼容多浏览器)
  9. kaggle gradient_descent
  10. 泰拉瑞亚加mod之后如何搭建服务器进行联机