Я использую python3 и pyqt5 .. Помимо основного потока моего графического интерфейса у меня был поток, который начинает потоковую передачу с моей камеры ... Я также создал два потока для чтения из этого потока, первый для показа, а другой для обработки ..Таким образом, 2 потока вызывают одну и ту же функцию в потоке потока для общего кадра, полученного с камеры.
Вот мой код:
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
...
Я передал поток потока другим потокам.. мой вопрос: это хороший способ и как синхронизировать между двумя потоками .. Заранее спасибо