当前位置: 首页 > wzjs >正文

网站滑动效果怎么做自动app优化官网

网站滑动效果怎么做,自动app优化官网,网站设计协议,课程分销的网站怎么做实时英文 OCR 文字识别:从摄像头到 PyQt5 界面的实现 引言 在数字化时代,文字识别技术(OCR)在众多领域中发挥着重要作用。无论是文档扫描、车牌识别还是实时视频流中的文字提取,OCR 技术都能提供高效且准确的解决方案…

实时英文 OCR 文字识别:从摄像头到 PyQt5 界面的实现

引言

在数字化时代,文字识别技术(OCR)在众多领域中发挥着重要作用。无论是文档扫描、车牌识别还是实时视频流中的文字提取,OCR 技术都能提供高效且准确的解决方案。本文将介绍如何使用 Python 和 PaddleOCR 实现从摄像头捕获视频流并实时识别其中的英文文字,同时将结果显示在 PyQt5 界面中。

技术栈

  • PaddleOCR:百度开源的 OCR 工具,支持多种语言的文字识别。
  • OpenCV:用于图像处理和视频流操作。
  • PyQt5:用于创建图形用户界面(GUI)。
  • Python:作为主要编程语言。

环境准备

在开始之前,确保你的环境中安装了以下必要的库:

pip install paddlepaddle paddleocr opencv-python PyQt5

实现步骤

1. 创建 PyQt5 界面

首先,我们需要创建一个简单的 PyQt5 界面,用于显示摄像头视频流和识别结果。界面包含一个视频显示区域、一个文本显示区域和一个控制按钮。

文件 1:untitled6.py
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'untitled6.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(1273, 877)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")# 创建一个 QLabel 用于显示摄像头视频流self.label = QtWidgets.QLabel(self.centralwidget)self.label.setGeometry(QtCore.QRect(240, 60, 501, 261))self.label.setText("")self.label.setObjectName("label")# 创建一个 QPushButton 用于控制摄像头的开关self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(450, 490, 93, 51))self.pushButton.setObjectName("pushButton")# 创建一个 QTextEdit 用于显示 OCR 识别结果self.textEdit = QtWidgets.QTextEdit(self.centralwidget)self.textEdit.setGeometry(QtCore.QRect(973, 6, 301, 581))self.textEdit.setObjectName("textEdit")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 1273, 26))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "OCR Camera"))self.pushButton.setText(_translate("MainWindow", "打开"))

2. 实现主程序逻辑

接下来,我们实现主程序逻辑,包括初始化 PaddleOCR、捕获摄像头视频流、进行 OCR 识别并将结果显示在 PyQt5 界面中。

文件 2:ocrCap.py
from paddleocr import PaddleOCR
import cv2
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QMessageBoxfrom untitled6 import Ui_MainWindow  # 导入UI类import sysclass PyQtMainEntry(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__()self.setupUi(self)# 初始化 PaddleOCR,设置为英文识别self.ocr = PaddleOCR(use_angle_cls=True, use_gpu=True, show_log=False,det_model_dir='en_PP-OCRv3_det_infer',rec_model_dir='en_PP-OCRv3_rec_infer',cls_model_dir='ch_ppocr_mobile_v2.0_cls_slim_infer',lang="en")# 初始化摄像头self.camera1 = cv2.VideoCapture(0)self.is_camera_opened = Falseself._timer = QtCore.QTimer(self)self._timer.timeout.connect(self._queryFrame)self._timer.setInterval(30)self.pushButton.clicked.connect(self.slot1)def slot1(self):# 控制摄像头的开关self.is_camera_opened = not self.is_camera_openedif self.is_camera_opened:self.pushButton.setText("关闭")self._timer.start()else:self.pushButton.setText("打开")self._timer.stop()def _queryFrame(self):# 从摄像头读取一帧ret1, self.frame1 = self.camera1.read()if ret1:# 调整帧大小self.frame11 = cv2.resize(self.frame1, (640, 480))qimage = cv2.cvtColor(self.frame11, cv2.COLOR_BGR2RGB)qimage = QtGui.QImage(qimage.data, qimage.shape[1], qimage.shape[0],QtGui.QImage.Format_RGB888)pixmap = QtGui.QPixmap.fromImage(qimage)self.label.setPixmap(pixmap)# 进行 OCR 识别result = self.ocr.ocr(self.frame1, cls=True)if result is not None:a_list = [line[1][0] for line in result[0]]zz = '\n'.join(a_list)self.textEdit.setText(zz)else:self.textEdit.setText("未检测到文本")if __name__ == "__main__":app = QtWidgets.QApplication(sys.argv)window = PyQtMainEntry()window.show()sys.exit(app.exec_())

3. 代码解释

  • PaddleOCR 初始化

    • use_angle_cls=True:启用角度分类器,用于处理旋转文本。
    • use_gpu=True:使用 GPU 加速,提高识别速度。
    • show_log=False:关闭日志输出,避免不必要的信息干扰。
    • det_model_dirrec_model_dircls_model_dir:指定模型文件路径。
    • lang="en":设置识别语言为英文。
  • 视频流捕获

    • 使用 cv2.VideoCapture(0) 捕获默认摄像头的视频流。
    • 每次循环读取一帧,并进行 OCR 识别。
  • OCR 识别

    • ocr.ocr(frame, cls=True):对当前帧进行 OCR 识别,返回识别结果。
    • 遍历识别结果,提取文本框的四个角点,并绘制文本框。
    • 提取识别的文本内容,并在文本框左上角位置显示。
  • 显示结果

    • 使用 cv2.imshow 显示处理后的视频帧。
    • 按下 ‘q’ 键退出程序,并释放摄像头资源。

4. 运行程序

最后,运行程序并查看效果:

python ocrCap.py

总结

通过上述步骤,我们成功地实现了一个从摄像头捕获视频流并实时识别其中英文文字的程序,并将结果显示在 PyQt5 界面中。这个项目不仅可以用于学习和研究,还可以应用于实际场景,如实时文档扫描、车牌识别等。希望这篇文章能帮助你更好地理解和应用 OCR 技术。


http://www.dtcms.com/wzjs/175095.html

相关文章:

  • 安平网站建设seo自学网视频教程
  • 网站建设推广的10种方法b站推广入口2023破解版
  • html代码翻译器seo入门书籍
  • 全国知名网站500强企业seo服务商
  • 河北 网站建设自己的品牌怎么做加盟推广
  • 如何修改wordpress站名北京网站建设开发公司
  • 单位门户网站建设网站优化的方式有哪些
  • 网站开发简介收录情况有几种
  • ui包括哪几个方面福州百度网站排名优化
  • 网易那个网站可以做字幕附近的成人电脑培训班
  • ps网站专题怎么做大连seo优化
  • 徐州哪家公司做网站水平好全国疫情最新情况最新消息今天
  • 上海网站制作公司哪家企业网站推广方案的策划
  • 房地产销售真实工资seo搜索引擎推广什么意思
  • 做机械的外贸网站百度seo优化教程免费
  • wordpress没有票编辑器上海企业seo
  • 宁波网站建设就业方向免费观看行情软件网站进入
  • 网站建设 html5成都企业网站seo技术
  • 哪个网站有高清图片做ppt微商软文范例大全100
  • 旅游网站系统wordpress免费seo
  • 一个单位网站被黑该怎么做百度竞价开户3000
  • 网站效果案例广州网站设计实力乐云seo
  • 网站副标题wordpress自助建站网站
  • 企业电商网站优化全网推广代理
  • 交互式网站有哪些功能域名交易平台
  • 兰州电商平台网站建设猪肉价格最新消息
  • 大连哪家公司做网站比较好世界新闻最新消息
  • 个人网站建设价格表谷歌外链
  • 做钓鱼网站犯法吗网络热词2022
  • 网站管理员怎么做微信营销平台哪个好