当前位置:首页 > 资讯 > 正文

Python实战之实现百度智能图片识别

Python实战之实现百度智能图片识别

这是我们最终的效果,那么我们一起来看一看如何实现吧!超简单易上手哦!

首先我们需要先配置pyqt5的资源,这里就不说关于安装包的问题了(pip或者pycharm可以直接添加解决的问题,不一一赘述),我们直接说环境配置和路径的问题(所有的配置都在FILE -> setting -> Tools -> External Tools里):

1、配置designer.exe

之前没安装过的需要点击加号添加,这里只要注意Working directory和Program的配置正确即可(务必正确,不然后期使用designer需要自己手动导入,比较麻烦),点击加之后,会出现这个界面,再把下面的数据输入就可以了。

Python实战之实现百度智能图片识别

Python实战之实现百度智能图片识别

Working directory除了前面的存在哪一个盘里不确定,后面的路径都一样

Program不需要更改

2、之后我们需要配置pyuic,这一步也很关键,它保证了把我们做出来的窗口界面翻译成python语言。没有这一步,就只能手码(自己敲代码实现窗口涉及)。同样的,点击加号

再把下面的内容输入就可以:

Python实战之实现百度智能图片识别

Program(也是一样,存在哪个盘可能不确定,是自己设置,但是后面的路径都一样)

Arguments(参数也不能有问题):

Working directory(这个务必不能出错)

3、那么,我们现在也可以添加一个pyrcc.exe(主要是把图像转化为可使用的文件,比如导入图标之类)

Python实战之实现百度智能图片识别

Program

Arguments

Working directory

那么到现在,我们以及配置完成了,之后就是代码的问题了。

首先我们打开我们导入的外界工具Qt designer

Python实战之实现百度智能图片识别

进去之后,页面如此:

Python实战之实现百度智能图片识别

我们直接创建一个main window就可以了

我们要实现的窗口大致如下:

Python实战之实现百度智能图片识别

 那么我们现在需要开始放东西了:

Python实战之实现百度智能图片识别

首先选中PushButton,之后可以任意更改它的大小和字体。

而后我们编辑第一个信号与槽函数:按下F4按键,点击pushbutton,拖拽出一个红色的线,放在喜欢的位置后,选择“显示从 QWidget 继承的信号和槽”,我们再点击clicked()(意思就是被点击),然后选择close()(意思就是关闭)。即被点击就关闭。

Python实战之实现百度智能图片识别

那么Ctrl+R可以测试一下功能,就是点击一下就退出了。

Python实战之实现百度智能图片识别

像这个请选择图片,就需要我们在python的代码里手动添加信号和槽了。但是我们为了写手码方便,最好双击更改一下它的备注。(如下)

Python实战之实现百度智能图片识别

那么之后先添加我们所需要的部件

Python实战之实现百度智能图片识别

Python实战之实现百度智能图片识别

双击combox就可以添加了

之后是文本和放图片的位置,我们统一使用Label(所以记得改名,防止记混了)

Python实战之实现百度智能图片识别

当添加到图片和路径的显示时,我们可以更改他们的背景色,如下:

Python实战之实现百度智能图片识别

Python实战之实现百度智能图片识别

那么它就变白了。

Python实战之实现百度智能图片识别

到这里,我们已经把窗口的工作做完了,当然我们也可以添加一个窗口小图标,让它打开的时候有图标:(同时注意combox的新建项目改名)

Python实战之实现百度智能图片识别

之后我们点击文件,保存即可:

Python实战之实现百度智能图片识别

现在我们返回pycharm,就能看到我们的文件了:

Python实战之实现百度智能图片识别

使用Py uic,把它转译成python代码,因为ui文件python是打不开的。

这个时候就会生成一个AIrecognition.py文件 

Python实战之实现百度智能图片识别

在这里,我们就可以导入一些必要的包(模块了),如下:我们一会儿再讲讲这些包都是干啥的。

可以看到,我们命名之后,更容易找到对应的槽来书写信号:

Python实战之实现百度智能图片识别

下一步,我们来书写一个打开图片的信号和槽函数(在py文件的最下面),这里要注意打开的窗口是主窗口,必须要存在,不然会报错:

由于我们把选择图片的那个Button改名成了choosepicture,所以这时候直接使用这个来做信号发生就好。

那么我们还有编写槽函数,在打开图片之后,要显示图片的路径以及图片的样子。所以这些功能在槽函数实现:

显示图片路径的label我们使用的名字是filedirectory,展示图片的label的名字是picturedisplay,所以我们在setText和setPixmap的时候,直接使用这两个名字就好。这样就实现了文本的展示和图片的展示(具体的代码以及函数,如QPixmap,就不再赘述,因为涉及的知识点会更多,所以只能委屈大大自己上网查一下啦!)

那么现在,我们把这一个信号和槽搞定了,就差接入百度识别的系统了。

就让我们来看一看吧:

Python实战之实现百度智能图片识别

点击搜索百度ai,进入之后选择图像识别,打开技术文档:

Python实战之实现百度智能图片识别

就可以看到python语言如何接入API,以及它的返回示例(我们展示图片信息就需要关注这个返回示例)

Python实战之实现百度智能图片识别

当然,之后需要注册一个属于自己的百度AI的账号,找到自己的API_Key和Secret_Key

Python实战之实现百度智能图片识别

注册之后点击左上角的三条横杠,然后选择图像识别。 

Python实战之实现百度智能图片识别

而后创建一个应用(我这里以及创建好了,简要的随便写写信息就行)

之后点进去就可以查看自己的API_Key和Secret_Key了

Python实战之实现百度智能图片识别

然后选择一些我们需要的识别项目(不用担心,的次数是足够的)

Python实战之实现百度智能图片识别

之后再进入刚才的接入和返回的示例,将其到python代码中(导入的模块写在上面)

注意上面书写槽函数实现打开图片代码中的typeTP,我们要靠这个接入网络,所以还要写函数,由于在设计窗口界面的时候,就已经将combox改名为choices,所以这里使用choices就可以。

并且这里我们书写了一个接受token值的函数,我们也需要完善它的功能,一遍正常接入API和返回token值。

在这里就需要我们导入一些新的包了,不过所有需要导入的包,我已经在开头给出,所以这里也不一一介绍了(比如simplejson,request)。

那么我们只演示其中的几个案例,植物和动物和logo,其他的接入都一样,在此之前,我们书写一个函数来处理冗余的代码问题(因为就像能在百度提供的接口代码一样,很多都是一样的,除了接受返回值):

可以看到,这里return的是一个response,也就是我们需要的一些内容(token_key的值),

我们使用strover来接受返回的内容,这时候我们需要查看返回的示例了(以植物为例):

Python实战之实现百度智能图片识别

可以看到,它返回了一个字典,那么我们就需要提取字典里的信息,也就是上面的代码所给出的:

字典的一些基本操作就不多解释了,所以,我们就这样成功的获取了信息。

其他的识别也可以以此类推,所以,我们就实现了智能识别(基于百度AI)。当然,要记得写入自己的AK和SK,不然也无法识别。

当然了,只是这样是无法运行这个代码的,我们还需要一个测试文件:

那就让我们看看效果吧:

Python实战之实现百度智能图片识别

效果非常好。当然,我们看这个表头啥也没有,很难看,我们可以手码写入:

Python实战之实现百度智能图片识别

import test_rc 不能少

Python实战之实现百度智能图片识别

同时,我们也可以设置一些标题文字,来改掉MainWindow:

Python实战之实现百度智能图片识别

就把这个地方改成我们想要的就可以了:

Python实战之实现百度智能图片识别

以上就是Python实战之实现百度智能图片识别的详细内容,更多关于Python图片识别的资料请关注脚本之家其它相关文章!