44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
import sys
|
|
import os
|
|
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
|
|
from PyQt5.QtGui import QPixmap, QImage
|
|
from PyQt5.QtCore import Qt
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
from Shared_CODE.CameraThread import CameraThread
|
|
from print_color import *
|
|
class MainWindow(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.initUI()
|
|
|
|
def initUI(self):
|
|
self.setWindowTitle("Camera Test")
|
|
self.setGeometry(100, 100, 800, 600)
|
|
|
|
self.label = QLabel(self)
|
|
self.label.setAlignment(Qt.AlignCenter)
|
|
|
|
layout = QVBoxLayout()
|
|
layout.addWidget(self.label)
|
|
self.setLayout(layout)
|
|
|
|
self.camera_thread = CameraThread("rtsp://192.168.1.205:554")
|
|
self.camera_thread.image_signal.connect(self.update_image)
|
|
self.camera_thread.start()
|
|
|
|
def update_image(self, image):
|
|
q_image = QImage(image.data, image.shape[1], image.shape[0], QImage.Format_RGB888)
|
|
pixmap = QPixmap.fromImage(q_image)
|
|
self.label.setPixmap(pixmap.scaled(self.label.size(), Qt.KeepAspectRatio))
|
|
|
|
def closeEvent(self, event):
|
|
self.camera_thread.close()
|
|
self.camera_thread.wait()
|
|
event.accept()
|
|
|
|
if __name__ == "__main__":
|
|
app = QApplication(sys.argv)
|
|
window = MainWindow()
|
|
window.show()
|
|
sys.exit(app.exec_())
|