PyQt5实时显示Camera

PyQt5实时显示Camera

  整个Demo的源码链接为:http://download.csdn.net/download/lovelyaiq/10132276
  由于QT中的显示需要借助于Qlable,而label显示的图片类型是:QImage和QPixmap。
  最终的效果图:
  Camera显示

初始化

  初始化部分比较简单,包含定时器,Camera、界面等。

定时器

  对定时器比较了解的可以忽略这部分。程序从Camera获取视频后,当然还需要进行显示,而显示需要定义每隔多长时间界面刷新一次,比如30ms,否则你的界面是没有图像进行显示的。

self.timer_camera = QtCore.QTimer()

Camera初始化

  Camera是通过Python-Opencv获取的。

        self.cap = cv2.VideoCapture()
        self.CAM_NUM = 0

界面初始化

self.__layout_main = QtWidgets.QHBoxLayout()
self.__layout_fun_button = QtWidgets.QVBoxLayout()
self.__layout_data_show = QtWidgets.QVBoxLayout()
self.button_open_camera = QtWidgets.QPushButton(u'打开相机')
self.button_close = QtWidgets.QPushButton(u'退出')
self.button_open_camera.setMinimumHeight(50)
self.button_close.setMinimumHeight(50)
~~~~~~~

格式转换

Opencv读取的图片格式,还不能通过Qlabel进行显示,需要转换为Qimage,转换方法为:
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))

运行

  1、当Camera没有与PC相接或Camera的ID有误时,软件报错:
  Camera链接有误
  2、界面退出时,软件弹框提示。
  软件关闭提示
  所以,可以在此基础上开发出一些其他的功能。

  • 5
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
利用PyQt库可以实现实时显示摄像头的画面。首先需要引入PyQt中的QCamera类和QCameraViewfinder类,这两个类可以帮助我们实现对摄像头的控制和实时显示。然后创建一个窗口并在窗口上添加一个QCameraViewfinder对象,这样就可以将摄像头捕获的画面实时显示出来。接着,初始化摄像头并开始捕获画面,可以通过定时器或者多线程的方式来更新画面,从而实现实时显示的效果。最后,将QCameraViewfinder对象添加到布局中,并将布局添加到窗口中,这样就完成了实时显示摄像头画面的功能。 具体代码可以按照以下步骤实现: 1. 导入需要的模块: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QFrame from PyQt5.QtMultimedia import QCamera, QCameraViewfinder ``` 2. 创建窗口和布局: ```python class CameraWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('实时摄像头画面') self.setGeometry(100, 100, 800, 600) self.frame = QFrame(self) self.layout = QVBoxLayout() self.frame.setLayout(self.layout) self.setCentralWidget(self.frame) ``` 3. 初始化摄像头和显示画面: ```python class CameraWindow(QMainWindow): # ... (前面的代码) def init_camera(self): self.camera = QCamera() # 初始化摄像头 self.viewfinder = QCameraViewfinder() # 创建视图finder self.viewfinder.setFixedSize(800, 600) # 设置显示大小 self.layout.addWidget(self.viewfinder) self.camera.setViewfinder(self.viewfinder) # 将视图finder设置给摄像头 self.camera.start() # 开始捕获画面 ``` 4. 实例化窗口并显示: ```python if __name__ == '__main__': app = QApplication([]) win = CameraWindow() win.init_camera() win.show() app.exec_() ``` 通过以上步骤,就可以实现用PyQt实时显示摄像头的画面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值