1
0

main.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import os
  2. import sys
  3. from PyQt5.QtCore import pyqtSlot
  4. from PyQt5.QtCore import QThread
  5. from PyQt5.QtGui import QImage
  6. from PyQt5.QtGui import QPixmap
  7. from PyQt5.QtWidgets import QApplication
  8. from PyQt5.QtWidgets import QMainWindow
  9. from PyQt5.uic import loadUi
  10. from camera import CameraDevice
  11. UI_PATH = os.path.dirname(os.path.abspath(__file__))
  12. class MainWindow(QMainWindow):
  13. def __init__(self):
  14. super().__init__()
  15. self.ui = loadUi(os.path.join(UI_PATH, 'mainwindow.ui'), self)
  16. self.thread = QThread()
  17. self.camera = CameraDevice()
  18. self.camera.frame_ready.connect(self.update_video_label)
  19. self.ui.video.setMinimumSize(*self.camera.size)
  20. self.camera.moveToThread(self.thread)
  21. @pyqtSlot(QImage)
  22. def update_video_label(self, image):
  23. pixmap = QPixmap.fromImage(image)
  24. self.ui.video.setPixmap(pixmap)
  25. self.ui.video.update()
  26. def main():
  27. app = QApplication(sys.argv)
  28. main_window = MainWindow()
  29. main_window.show()
  30. sys.exit(app.exec_())