python实现图像识别
pyside2免费中文文档链接推荐:http://www.byhy.net/tut/py/gui/qt_01/
百度OCR图像识别接口调用
一. 界面
1. 通过pyside2的qt designer工具自动化生成界面,并保存为xxx.ui文件,工具如下图:
2. 两种方法将xxx.ui文件(界面)载入到代码中使用。
- 利用pyuic5将xxx.ui文件转换成xxx.py文件,通过import xxx.py来使用界面(其中pyuic5可通过pip install pyqt5获得)
- 利用QUiLoader().load('xxx.ui')动态载入ui文件
- 参考链接(pycharm中搭建designer与pyuic环境):https://www.cnblogs.com/hhs1998/p/15807691.html
3. 目前qt designer中没有控件可以实现图片缩放与移动,网络上有大佬通过graphicsView控件实现图片的缩放与移动,所以直接拿过来用。
链接(图片的缩放与移动):https://blog.csdn.net/weixin_44821251/article/details/106290132
二. 逻辑与界面的分离
pyside2通过信号(signal)与槽(slot)来实现逻辑
例子如下:
ui = QUiLoader().load('window.ui') ui.button.clicked.connect(ocr_base) #将window.ui文件加载使用 #使用button.clicked.connect(function)实现逻辑 #其中clicked就是信号,表示点击发生的事件 #参数里的function则表示槽,表示点击会执行该函数
三. OCR的调用
1. 通过tesserocr识别,这种识别不太精确,如果是较为模糊的图片,基本就无法识别
链接(tesserocr搭建以及实现):https://blog.csdn.net/lanxianghua/article/details/100516187?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2. 通过baiduocr识别,创建测试账号,申请免费ocr调用次数,不过每月次数有限,但是个人使用足够了
链接(百度ocr介绍以及调用):https://www.cnblogs.com/adam012019/p/11440353.html
调用代码如下:
from aip import AipOcr
import re
APP_ID='17010327'
API_KEY='X2MWCU1LG1PX5H6GAXgdlWD7'
SECRET_KEY='vz6GZ6TkhSFvY3quqcuC3EG8oEW3kThB'
client=AipOcr(APP_ID,API_KEY,SECRET_KEY)
i=open(r'C:\Users\Administrator\Desktop\example.png','rb')
image = i.read()
result=client.basicGeneral(image)
#将所有的文字都合并到一起
for item in result['words_result']:
print(item['words'])
此处client里的3个参数,APP_ID,API_KEY,SECRET_KEY通过申请ocr调用获取
链接(百度智能云获取参数):https://blog.csdn.net/sunyong0814/article/details/122362502
四. 效果如下
截取一张图片,并调用接口进行识别