如何在 python 中将 2 个窗口合并/合并为一个窗口?

问题描述 投票:0回答:0

我正在编写一个程序,它显示一个安全控制台,用于显示来自我的网络摄像机的所有 rtsp 流。每个流在不同的窗口中播放,我希望将它们全部合并到一个窗口中。

这是我的代码:

import cv2
import threading

class camThread(threading.Thread):
    def __init__(self, previewName, camID):
        threading.Thread.__init__(self)
        self.previewName = previewName
        self.camID = camID
    def run(self):
        camPreview(self.previewName, self.camID)

def camPreview(previewName, camID):
    # global frame
    cv2.namedWindow(previewName)
    cam = cv2.VideoCapture(camID)
    if cam.isOpened():  # try to get the first frame
     rval, frame = cam.read()

    else:
        rval = False

    while rval:
        frame = cv2.resize(frame, (620,400))
        cv2.imshow(previewName, frame)
        rval, frame = cam.read()
        cv2.waitKey(20)


thread1 = camThread("Camera 1", 'my-rtsp-link')
thread2 = camThread("Camera 2", "my-second-rtsp-link")
thread1.start()
thread2.start()

我已经尝试过多处理,但它不起作用,因为我的函数中有一个 while 循环。任何帮助将不胜感激。

我使用 np.hstack 组合我的 rtsp 流,但这会使流冻结。所以我让两个流都通过多线程工作。但是现在每个流都在其单独的窗口中播放,如果我添加多个摄像头,这将非常混乱。我怎样才能将它们全部合并到一个大窗口中?

python multithreading opencv tkinter rtsp
© www.soinside.com 2019 - 2024. All rights reserved.