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

 

四. 效果如下

截取一张图片,并调用接口进行识别

 

 

 

posted @ 2022-02-03 15:55  SiNanhong  阅读(3194)  评论(0编辑  收藏  举报