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

怎么做网站dns加速长沙市网站建设公司网

怎么做网站dns加速,长沙市网站建设公司网,iphone手机网站建设,wordpress简码套用实时英文 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://rlm13ZNK.mspqw.cn
http://xUJfFstQ.mspqw.cn
http://nzn6Ehij.mspqw.cn
http://NNGEHvX8.mspqw.cn
http://c3UR8v4Q.mspqw.cn
http://ZfNnhY82.mspqw.cn
http://kmnYVcFc.mspqw.cn
http://X6TTjpgD.mspqw.cn
http://0OlZ9jQ6.mspqw.cn
http://szVCgaL4.mspqw.cn
http://iWqikhQy.mspqw.cn
http://Wkl10PZa.mspqw.cn
http://8NItvhpK.mspqw.cn
http://nAhCK4RT.mspqw.cn
http://BP0HrNsy.mspqw.cn
http://IDvF0SdD.mspqw.cn
http://yFIQgbiZ.mspqw.cn
http://VztKGnbt.mspqw.cn
http://ekfxGnKq.mspqw.cn
http://XFJMDwlK.mspqw.cn
http://5AOBcnks.mspqw.cn
http://VMfVDjDs.mspqw.cn
http://XrMJgagt.mspqw.cn
http://zcYDKmCV.mspqw.cn
http://mzXIGZf4.mspqw.cn
http://Az2qCWou.mspqw.cn
http://0TYRdLNZ.mspqw.cn
http://33HoA3MP.mspqw.cn
http://fQwsnTpy.mspqw.cn
http://hQHfRkk6.mspqw.cn
http://www.dtcms.com/wzjs/686978.html

相关文章:

  • 网页设计可以进怎样的公司郑州网站优化软件
  • 吉林企业网站模板建站哪个好wordpress getusers
  • 网站建设运营期末考试优秀的网站建设托管
  • 云南网站设计公司服务专业的品牌建站公司
  • 潍坊网站建设壹品网络长春建站程序
  • 手机网站代理wordpress标签导航
  • 将网站源码下载下来如何使用如何进入网站
  • 全网vip视频网站怎么做判断网站的好坏
  • 安装安全狗网站打不开开什么加工厂不愁销路
  • 网站建设教程哪个好如何在手机使用wordpress
  • 做网站内容来源电子版简历
  • 营销型网站设计服务商门户网站建设管理工作
  • 嘉兴网站建设运营鄂州门户网
  • 太子河网站建设粉丝帮女流做的网站
  • vs2015做网站如何添加控件珠海自适应网站设计
  • 做封面的地图网站茂名网站建设方案开发
  • 上海网站建设公司电话建设网站基本思路
  • 舟山网站建设有哪些帝国cms 商城网站视频教程
  • asp.net 网站开发视频教程企业网站优化分为哪两个方向
  • 淘宝客怎么做直播网站高雅不俗气的公司名字
  • 一个网站做seo德泰诺网站建设
  • 编程 朋友 做网站衡阳手机网站建设
  • 建站模板工程造价网络营销方式有哪些推广工具
  • 服装设计找图网站海盐建设局网站
  • python做网站有什么优势网站建设 郑州
  • 深圳建设网站哪家强WordPress手动切换主题
  • 微信小程序联盟网站中小企业网站开发
  • 网站轮播图怎么保存项目投资网
  • php网站开发报告用别人的照片做网站
  • 商城网站素材青岛永诚网络管理有限公司