最近在研究python的可视化界面,在查资料的过程中get了pyqt5这种pycharm的可视化应用界面,整体理解上不算多难,网上也有很多成熟的例子。
下面是从网上了一些资料写的一个实现打开读取显示电脑摄像头实时画面的例子。

import sys
import os
import cv2from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QPalette, QBrush, QPixmap
from planToReadImageFromFile import helloclass Ui_MainWindow(QtWidgets.QWidget):def __init__(self, parent=None):super(Ui_MainWindow, self).__init__(parent)self.timer_camera = QtCore.QTimer()  # 初始化定时器self.cap = cv2.VideoCapture()  # 初始化摄像头self.CAM_NUM = 0self.set_ui()self.slot_init()self.__flag_work = 0self.x = 0self.count = 0def set_ui(self):self.__layout_main = QtWidgets.QHBoxLayout()  # 采用QHBoxLayout类,按照从左到右的顺序来添加控件self.__layout_fun_button = QtWidgets.QHBoxLayout()self.__layout_data_show = QtWidgets.QVBoxLayout()  # QVBoxLayout类垂直地摆放小部件self.button_open_camera = QtWidgets.QPushButton(u'打开相机')self.button_close = QtWidgets.QPushButton(u'退出')# button颜色修改button_color = [self.button_open_camera, self.button_close]for i in range(2):button_color[i].setStyleSheet("QPushButton{color:black}""QPushButton:hover{color:red}""QPushButton{background-color:rgb(78,255,255)}""QpushButton{border:2px}""QPushButton{border_radius:10px}""QPushButton{padding:2px 4px}")self.button_open_camera.setMinimumHeight(50)self.button_close.setMinimumHeight(50)# move()方法是移动窗口在屏幕上的位置到x = 500,y = 500的位置上self.move(500, 500)# 信息显示self.label_show_camera = QtWidgets.QLabel()self.label_move = QtWidgets.QLabel()self.label_move.setFixedSize(100, 100)self.label_show_camera.setFixedSize(641, 481)self.label_show_camera.setAutoFillBackground(False)self.__layout_fun_button.addWidget(self.button_open_camera)self.__layout_fun_button.addWidget(self.button_close)self.__layout_fun_button.addWidget(self.label_move)self.__layout_main.addLayout(self.__layout_fun_button)self.__layout_main.addWidget(self.label_show_camera)self.setLayout(self.__layout_main)self.label_move.raise_()self.setWindowTitle(u'摄像头')'''# 设置背景颜色palette1 = QPalette()palette1.setBrush(self.backgroundRole(),QBrush(QPixmap('background.jpg')))self.setPalette(palette1)'''def slot_init(self):  # 建立通信连接self.button_open_camera.clicked.connect(self.button_open_camera_click)self.timer_camera.timeout.connect(self.show_camera)self.button_close.clicked.connect(self.close)def button_open_camera_click(self):if self.timer_camera.isActive() == False:flag = self.cap.open(self.CAM_NUM)if flag == False:msg = QtWidgets.QMessageBox.Warning(self, u'Warning', u'请检测相机与电脑是否连接正确',buttons=QtWidgets.QMessageBox.Ok,defaultButton=QtWidgets.QMessageBox.Ok)# if msg==QtGui.QMessageBox.Cancel:#                     passelse:self.timer_camera.start(30)self.button_open_camera.setText(u'关闭相机')else:self.timer_camera.stop()self.cap.release()self.label_show_camera.clear()self.button_open_camera.setText(u'打开相机')def show_camera(self):flag, self.image = self.cap.read()show = cv2.resize(self.image, (640, 480))# opencv格式不能直接显示,需要用下面代码转换一下show = cv2.cvtColor(show, cv2.COLOR_BGR2RGB)showImage = QtGui.QImage(show.data, show.shape[1], show.shape[0], QtGui.QImage.Format_RGB888)self.label_show_camera.setPixmap(QtGui.QPixmap.fromImage(showImage))def closeEvent(self, event):ok = QtWidgets.QPushButton()cancel = QtWidgets.QPushButton()msg = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Warning, u'关闭', u'是否关闭!')msg.addButton(ok, QtWidgets.QMessageBox.ActionRole)msg.addButton(cancel, QtWidgets.QMessageBox.RejectRole)ok.setText(u'确定')cancel.setText(u'取消')if msg.exec_() == QtWidgets.QMessageBox.RejectRole:event.ignore()else:if self.cap.isOpened():self.cap.release()if self.timer_camera.isActive():self.timer_camera.stop()event.accept()if __name__ == '__main__':App = QApplication(sys.argv)win = Ui_MainWindow()win.show()sys.exit(App.exec_())

pyqt5——实现打开电脑摄像头相关推荐

  1. 使用PYQT5打开电脑摄像头并进行拍照

    目录 1 UI界面的布局 2 UI界面布局对应的代码 3 打开电脑摄像头等功能的完整代码 4 一些代码函数和优化界面代码 5 最终效果 1 UI界面的布局 下图是简单设计的一个UI控制的输出可视化界面 ...

  2. python利用pyqt5和opencv打开电脑摄像头并进行拍照

    python利用pyqt5和opencv打开电脑摄像头并进行拍照 效果如下: 代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import sys im ...

  3. pyqt5+opencv-python打开摄像头(已实现)

    少废话 直接上代码 from PyQt5 import QtCore, QtGui, QtWidgets import sys import cv2 as cv2class Ui_MainWindow ...

  4. 界面开发(4)--- PyQt5实现打开图像及视频播放功能

    PyQt5创建打开图像及播放视频页面 上篇文章主要介绍了如何实现登录界面的账号密码注册及登录功能,还简单介绍了有关数据库的连接方法.这篇文章我们介绍一下如何在设计的页面中打开本地的图像,以及实现视频播 ...

  5. opencv打开电脑摄像头,空格控制视频录制暂停,ESC退出并保存视频

    基本思路: (1)打开摄像头 (2)获得摄像头读入图像参数,设置视频录制器VideoWriter (3)捕获键盘操作,空格key=32, ESC的key=27 (4)不断刷新当前帧,显示视频录制情况 ...

  6. pyqt5界面打开flash(.swf)文件

    最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! 打开flash文件 网上关于pyqt5的内容特别少,对于查找一 ...

  7. PyQt5之打开文件夹

    一. 1.单个文件打开 QFileDialog.getOpenFileName() 2.多个文件打开 QFileDialog.getOpenFileNames() 3.文件夹选取 QFileDialo ...

  8. jetson nano opencv 打开 CSI摄像头_怎样使用OpenCV打开电脑摄像头或者外接USB摄像头...

    我们如何使用OpenCV打开摄像头并获取从摄像头得到的视频流数据呢?下面,我们会使用VS2019和OpenCV实现该功能. 先上代码: #include#include using namespace ...

  9. Jetson 学习笔记(六):cv2调用CSI摄像头(jetson nx/nano)、打开海康摄像头、打开电脑摄像头

    文章目录 海康摄像头 电脑摄像头 Jetson NX/Nano-CSI 方法1 方法2 Jetson Nano/Nx-USB 海康摄像头 import cv2 import multiprocessi ...

最新文章

  1. Linux下安装Java8
  2. python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  3. Spring中的容器
  4. 《系统集成项目管理工程师》必背100个知识点-27产品范围和项目范围
  5. cobbler一键部署centos7.4(脚本)
  6. 玩转oracle 11g(26):误删表数据和误删表回滚
  7. django 1.8 官方文档翻译: 2-2-3 查找 API 参考
  8. RMS Server打开或关闭日志记录
  9. Android LruCache技术原理
  10. 前端神器之Sublime Text2/3简单明了使用总结
  11. video-react报错pause没有被定义_qt常见报错
  12. nodejs后台系列--第五篇-购买云服务器,安装宝塔面板
  13. Nginx设置跨域配置
  14. mysql的数据库实例名是啥_数据库名、数据库实例名与数据库域名
  15. m3u8视频下载转为mp4
  16. 养生之道?阴阳平衡也!
  17. 英特尔图形处理器第8代架构
  18. 如何实现微信和淘宝的扫码登录 ?
  19. JavaScript知识要点 - Web前端开发必备
  20. C语言字符串 string强转为int

热门文章

  1. 7-6 列车调度 (25 分)
  2. 人工智能Java SDK:安全帽检测
  3. 大数据开发工程师面试题以及答案整理(二)
  4. mock功能-了解mock的作用及使用场景
  5. Unreal Open Day 2017整理
  6. Java算法实现:墓地雕塑(Graveyard, NEERC 2006, LA 3708)
  7. RS3MB-ASEMI高效二极管RS3MB
  8. i.MX6ULL终结者Cortex-A7寄存器组
  9. 二维条码 QR code 的解码
  10. R语言学习(三)3D制图——rayshader包(一)