iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python+PyQt5自制监控小工具
  • 609
分享到

怎么使用Python+PyQt5自制监控小工具

2023-07-05 13:07:56 609人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“怎么使用python+PyQt5自制监控小工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!利用OpenCV的图像处理功能可

本篇内容介绍了“怎么使用python+PyQt5自制监控工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

利用OpenCV的图像处理功能可以轻松对计算机摄像头的调用实现实时图像的采集效果。

最终将图片进行保存后生成监控的历史视频记录。

怎么使用Python+PyQt5自制监控小工具

pip install PyQt5pip install Python-opencv

若是没有安装相关的模块,可以选择上述pip的方式进行安装。

接下来我们将需要的python模块导入到代码块中。

# It's just an alias for the cv2 module.import cv2 as cv_# It's importing all the classes from the QtGui module.from PyQt5.QtGui import *# It's importing all the classes from the QtCore module.from PyQt5.QtCore import *# It's importing all the classes from the QtWidgets module.from PyQt5.QtWidgets import *# It's importing the sys module.import sys# It's importing the os module.import os# It's importing the time module.import time# It's importing the traceback module.import traceback

创建名称为CameraUI的python类,开发监控工具相关的页面组件及布局。

将控件按钮等对应的槽函数也放到该类中。

class CameraUI(QWidget):    def __init__(self):        super(CameraUI, self).__init__()        self.init_ui()    def init_ui(self):        self.setWindowTitle('本地监控工具 公众号:Python 集中营')        self.setWindowIcon(QIcon('ico.png'))        self.resize(600, 400)        self.label_view = QLabel()        self.image_path = QLineEdit()        self.image_path.setReadOnly(True)        self.image_path.setPlaceholderText('视频流图片保存地址')        self.image_path_btn = QPushButton()        self.image_path_btn.setText('打开')        self.image_path_btn.clicked.connect(self.image_path_btn_clk)        self.video_path = QLineEdit()        self.video_path.setReadOnly(True)        self.video_path.setPlaceholderText('监控视频保存地址')        self.video_path_btn = QPushButton()        self.video_path_btn.setText('打开')        self.video_path_btn.clicked.connect(self.video_path_btn_clk)        self.start_listen_btn = QPushButton()        self.start_listen_btn.setText('开启监控')        self.start_listen_btn.clicked.connect(self.start_listen_btn_clk)        self.brower = QTextBrowser()        self.brower.setReadOnly(True)        self.brower.setFont(QFont('宋体', 8))        self.brower.setPlaceholderText('日志处理过程区域...')        self.brower.ensureCursorVisible()        hbox = QHBoxLayout()        vbox_left = QVBoxLayout()        vbox_right = QVBoxLayout()        vbox_left.addWidget(self.label_view)        vbox_right_grid1 = QGridLayout()        vbox_right_grid1.addWidget(self.image_path, 0, 0, 1, 2)        vbox_right_grid1.addWidget(self.image_path_btn, 0, 2, 1, 1)        vbox_right_grid1.addWidget(self.video_path, 1, 0, 1, 2)        vbox_right_grid1.addWidget(self.video_path_btn, 1, 2, 1, 1)        vbox_right_grid2 = QGridLayout()        vbox_right_grid2.addWidget(self.brower, 0, 0, 1, 3)        vbox_right_grid2.addWidget(self.start_listen_btn, 1, 0, 1, 3)        vbox_right.addLayout(vbox_right_grid1)        vbox_right.addLayout(vbox_right_grid2)        hbox.addLayout(vbox_left)        hbox.addLayout(vbox_right)        self.listen_thread = ListenWorkThread(self)        self.listen_thread.message.connect(self.show_message)        self.listen_thread.finished.connect(lambda: self.start_listen_btn.setEnabled(True))        self.setLayout(hbox)    def show_message(self, text):        cursor = self.brower.textCursor()        cursor.movePosition(QTextCursor.End)        self.brower.append(text)        self.brower.setTextCursor(cursor)        self.brower.ensureCursorVisible()    def image_path_btn_clk(self):        dir = QFileDialog.getExistingDirectory(self, "选择文件夹", os.getcwd())        self.image_path.setText(dir)    def video_path_btn_clk(self):        dir = QFileDialog.getExistingDirectory(self, "选择文件夹", os.getcwd())        self.video_path.setText(dir)    def start_listen_btn_clk(self):        self.listen_thread.start()

怎么使用Python+PyQt5自制监控小工具

开发一个ListenWorkThread类并且继承自QThread的子线程

将该线程作为业务类实现调用本地摄像头完成监控的效果。

class ListenWorkThread(QThread):    message = pyqtSignal(str)    finished = pyqtSignal(bool)    def __init__(self, parent=None):        super(ListenWorkThread, self).__init__(parent)        self.parent = parent        self.working = True    def __del__(self):        self.working = False    def run(self):        try:            image_path = self.parent.image_path.text()            video_path = self.parent.video_path.text()            if image_path.strip() == '' or video_path.strip() == '':                self.message.emit('相关路径设置不能为空,请检查设置!')                return            self.cap = cv_.VideoCapture(0)            self.cap.set(3, 300)            self.cap.set(4, 400)            if self.cap.isOpened():                self.message.emit('摄像头已成功打开!')                n = 0                self.message.emit('正在进行视频 监控中....')                start_time = time.clock()                while True:                    ret, img = self.cap.read()                    if os.path.exists(os.path.join(image_path, str(n) + '.jpg')):                        os.remove(os.path.join(image_path, str(n) + '.jpg'))                    self.save_image(img, str(n), image_path)                    time.sleep(0.1)                    pixmap_ = QPixmap(os.path.join(image_path, str(n) + '.jpg'))                    self.parent.label_view.setPixmap(pixmap_)                    n = n + 1            self.finished.emit(True)        except Exception as e:            traceback.print_exc()            self.message.emit('程序运行错误,请检查参数是否设置正确!')            self.finished.emit(True)    def save_image(self, image=None, file_name=None, image_path=None):        if image is not None:            cv_.imwrite(os.path.join(image_path, file_name + '.jpg'), image)

以上整个业务子线程的逻辑就开发完成了,然后使用python模块的main函数调用。

将整个程序的运行加入到主体循环当中。

if __name__ == '__main__':    app = QApplication(sys.argv)    main = CameraUI()    main.show()    sys.exit(app.exec_())

“怎么使用Python+PyQt5自制监控小工具”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么使用Python+PyQt5自制监控小工具

本文链接: https://www.lsjlt.com/news/351922.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Python+PyQt5自制监控小工具
    本篇内容介绍了“怎么使用Python+PyQt5自制监控小工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!利用opencv的图像处理功能可...
    99+
    2023-07-05
  • Python+PyQt5自制监控小工具
    本篇文章通过使用python实现对计算机摄像头的调用从而实现摄像监控的功能。 利用opencv的图像处理功能可以轻松对计算机摄像头的调用实现实时图像的采集效果。 最终将图片进行保存后...
    99+
    2023-03-19
    Python PyQt5监控工具 Python PyQt5监控 Python 监控 Python PyQt5
  • mongoDB的监控工具怎么用
    mongoDB的监控工具怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mongostatmongostat捕捉并返回各种...
    99+
    2024-04-02
  • Linux监控工具Glances怎么用
    这篇文章主要介绍了Linux监控工具Glances怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Glances 是一个由 Python 编写,使用 psutil 库来从...
    99+
    2023-06-27
  • MySQL监控工具orzdba怎么用
    这篇文章给大家分享的是有关MySQL监控工具orzdba怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。[root@hank-yoon servers]# chmod +x ...
    99+
    2024-04-02
  • Linux流量监控工具怎么用
    这篇文章主要为大家展示了“Linux流量监控工具怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux流量监控工具怎么用”这篇文章吧。一、iftop是什么?iftop是类似于top的实时...
    99+
    2023-06-13
  • Redis监控工具RedisInsight怎么安装与使用
    这篇“Redis监控工具RedisInsight怎么安装与使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis监控工...
    99+
    2023-06-29
  • Windows 2003自带性能监控工具的使用分析
    本篇文章为大家展示了Windows 2003自带性能监控工具的使用分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前几天有一台备库在累积了多日的REDO后,进行REDO APPLY时,整个系统变得...
    99+
    2023-06-06
  • Linux监控工具glances如何使用
    本篇文章为大家展示了Linux监控工具glances如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Linux下如何使用glances?glances是一个基于python语言开发,可以为li...
    99+
    2023-06-28
  • Linux怎么使用KSysguard工具监控远端主机
    这篇文章主要介绍“Linux怎么使用KSysguard工具监控远端主机”,在日常操作中,相信很多人在Linux怎么使用KSysguard工具监控远端主机问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux...
    99+
    2023-06-13
  • Linux系统监控工具Collectl怎么用
    这篇文章跟大家分析一下“Linux系统监控工具Collectl怎么用”。内容详细易懂,对“Linux系统监控工具Collectl怎么用”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习...
    99+
    2023-06-28
  • Windows GUI自动化控制工具之python uiAutomation
    对 Windows GUI进行自动化控制的工具有很多,比如pywinauto、pyautogui、pywin32、Autoit、airtest、UIAutomation等,UI Automation ...
    99+
    2023-09-01
    自动化 python uiautomation windows gui 自动化
  • MongoDB 监控工具mongostat和mongotop的使用
    目录mongostatmongotop除了这两个工具之外,还有一些其他的命令可以查看集群的状态:db.serverStatus()db.stats()db.coll.stats()r...
    99+
    2024-04-02
  • Redis监控工具RedisInsight安装与使用
    目录一、RedisInsight 简介二、RedisInsight 安装与使用1.物理安装2.Kubernetes 安装3.RedisInsight 基本使用一、RedisInsig...
    99+
    2024-04-02
  • 怎么用PyQT5制作一个桌面摸鱼工具
    这篇文章主要介绍“怎么用PyQT5制作一个桌面摸鱼工具”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用PyQT5制作一个桌面摸鱼工具”文章能帮助大家解决问题。按键功能控制q 退出B 书签功能F ...
    99+
    2023-06-29
  • 利用Python实现自制文件搜索小工具
    目录前言环境准备完整代码前言 嗨嗨,大家晚上好 ~ 当自己电脑文件很多还有点乱,不记得自己文件放哪里的时候,用电脑自带的搜索文件,这个等待时间可慢了 对我们这种敲代码的,这能忍吗,...
    99+
    2024-04-02
  • Centos7怎么部署nmon监控工具
    今天小编给大家分享一下Centos7怎么部署nmon监控工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。nmon是一种在A...
    99+
    2023-06-28
  • JVM监控工具用法是怎么样的
    JVM监控工具用法是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。你对JVM监控工具的用法是否了解,这里向大家描述几种,VisualVM是一种集成了多个JDK命令行工具...
    99+
    2023-06-17
  • UAVStack中JVM监控分析工具怎么用
    这篇文章主要为大家展示了“UAVStack中JVM监控分析工具怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“UAVStack中JVM监控分析工具怎么用”这篇文章吧。引言作为AllInOne...
    99+
    2023-06-04
  • OpenStack高性能监控工具Monasca怎么用
    小编给大家分享一下OpenStack高性能监控工具Monasca怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍Monasca 是一个多租户监控即服务工具...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作