码迷,mamicode.com
首页 > 编程语言 > 详细

python opencv PyQt5

时间:2019-07-25 23:28:41      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:oca   __init__   highlight   sys   pen   strftime   format   widgets   scale   

import cv2
import numpy as np
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import datetime


class Video():
    def __init__(self, capture):
        self.capture = capture
        capture.set(3,960) # set Width
        capture.set(4,2560) # set Height
        self.currentFrame = np.array([])

    def captureFrame(self):
        ret, readFrame = self.capture.read()
        return readFrame

    def captureNextFrame(self):
        ret, readFrame = self.capture.read()
        if (ret == True):

            readFrame=cv2.resize(readFrame, (int(960 / 4), int(2560 / 4)))
            
            #cv2.waitKey(1)
            self.currentFrame = cv2.cvtColor(readFrame, cv2.COLOR_BGR2RGB)

    def convertFrame(self):
        try:
            height, width = self.currentFrame.shape[:2]
            #print(height, width)
            img = QImage(self.currentFrame, width, height, QImage.Format_RGB888)
            img = QPixmap.fromImage(img)
            #self.previousFrame = self.currentFrame
            return img
        except:
            return None


class win(QMainWindow):
    def __init__(self, parent=None):
        super(win,self).__init__()
        self.setGeometry(250, 80, 960, 2560)
        self.setWindowTitle(‘camera‘)
        self.video = Video(cv2.VideoCapture(1))
        print(self.video)
        self._timer = QTimer(self)
        self._timer.timeout.connect(self.play)
        self._timer.start(2)
        self.update()
        self.videoFrame = QLabel(‘VideoCapture‘)
        self.videoFrame.setAlignment(Qt.AlignCenter)
        self.setCentralWidget(self.videoFrame)
        self.ret, self.capturedFrame = self.video.capture.read()

    def play(self):
        try:
            nowTime=datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M:%S‘)
            print(nowTime)
            self.video.captureNextFrame()
            self.videoFrame.setPixmap(self.video.convertFrame())
            self.videoFrame.setScaledContents(True)
        except TypeError:
            print(‘No Frame‘)


if __name__ == ‘__main__‘:
    app = QApplication(sys.argv)
    win = win()
    win.show()
    sys.exit(app.exec_())

  

python opencv PyQt5

标签:oca   __init__   highlight   sys   pen   strftime   format   widgets   scale   

原文地址:https://www.cnblogs.com/ahuo/p/11247294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!