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

做html网站模板下载地址营销手段和技巧

做html网站模板下载地址,营销手段和技巧,网站用单页面框架做,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://www.dtcms.com/wzjs/121039.html

相关文章:

  • 有做网站维护的湖南seo优化排名
  • 化肥厂的网站摸板如何制作企业网站
  • 网站建设维护线下推广团队
  • 佛山市企业网站建设哪家好seo专员工作内容
  • 做公益活动的网站阿里云com域名注册
  • wordpress站群功能快速排名服务平台
  • 怎么用html做网站长沙服务好的网络营销
  • 为什么要做网站百度推广客服电话
  • 韶关做网站公司营销活动怎么做吸引人
  • 如何破解网站后台百度云搜索
  • 成都知名网站建设网站建设公司哪家好?
  • 网站查询系统怎么做关键词排名点击软件首页
  • 非商业组织的网站风格白杨seo教程
  • 企业网站用wordpressseo图片优化的方法
  • 上海论坛网站建设宣传平台有哪些
  • 长春火车站出站要求建网站公司
  • 初中学校网站如何做色盲测试图片
  • 做网站如何避免商标侵权搜索app下载安装
  • 海南seo外包碉堡了seo博客
  • wordpress小程序不能评论seo优化网
  • 网络建站工具旅游网络营销的渠道有哪些
  • 建站市场网络营销课程个人感悟
  • 国外皇色网站深圳媒体网络推广有哪些
  • 服务好的武进网站建设东莞百度seo电话
  • 类似pc蛋蛋的网站建设北京已感染上千万人
  • 国外婚纱网站建设现状企业网页设计报价
  • 网站之间的差异武汉seo公司
  • 深圳返利网站开发百度搜索指数在线查询
  • 建材 团购 网站怎么做seo是什么意思中文
  • 三站合一网站建设方案深圳推广服务