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_())

  

最新文章

  1. 【原创】记一次Project插件开发
  2. JAVA里面的IO流(二)方法1、输入流
  3. SharePoint 2013 报:网站在改进过程中处于只读状态,对此给您带来的不便,我们深表歉意
  4. Tomcat 6 JNDI数据源详解
  5. 如何设计一个优秀的API(转)
  6. 探究chrome下的开发工具的各功能
  7. 常用SQL查询语句
  8. Android v4、v7、v13 的区别
  9. Datagrid数据导出到excel文件的三种方法
  10. weblogic与axis2 jar包冲突
  11. 转....导入excel错误:外部表不是预期的格式 解决方案
  12. JSP---JavaBean的使用-jsp:useBean标签相关
  13. QLineEdit
  14. Scala--样例类(case)详解
  15. codeforces 416B. Appleman and Tree 树形dp
  16. java 中缀转后缀(逆波兰)
  17. 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
  18. FirstIDL
  19. tomcat 日志切割 catalina.out
  20. 学习TensorFlow,调用预训练好的网络(Alex, VGG, ResNet etc)

热门文章

  1. oracle 数据库导入导出语句
  2. nginx服务的基本配置
  3. 应用在App Store上被拒重新提交审核流程指南
  4. json模块中dumps()与dump()区别
  5. ondblclick和dblclick区别
  6. 网络空间安全基础篇(2)----wireshark
  7. 在k8s集群部署SonarQube
  8. Kubernetes网络之Flannel工作原理
  9. Linux CentOs下安装lnmp
  10. 编程小白入门分享五:Vue的自定义组件