我正在使用python3和pyqt5。 在我的GUI主线程旁边,我有一个线程从相机开始流式传输。 我还创建了两个线程来读取此流,第一个用于显示,另一个用于处理。 因此,这两个线程在流线程中将相同的函数调用到从相机获取的共享帧。
这是我的代码:
class StreamThread(QThread):
def __init__(self, src=None):
QThread.__init__(self)
self.stream = cv2.VideoCapture(src)
_, self.frame = self.stream.read()
def run(self):
while True:
_, self.frame = self.stream.read()
def read(self):
return self.frame
class ShowThread(QThread):
def __init__(stream):
QThread.__init__(self)
self.stream = stream
def run(self):
while True:
frame = self.stream.read()
...
# send frame to the gui
...
class AnalyzeThread(QThread):
def __init__(stream):
QThread.__init__(self)
self.stream = stream
def run(self):
while True:
frame = self.stream.read()
...
# do processing
...
我将流线程传递给其他线程。 我的问题:这是一个好方法,以及如何在两个线程之间进行同步。 预先感谢