Я использую qthread для показа изображения, снятого с USB-камеры.
Проблема заключается в том, что после завершения нити используется:
th.terminate()
Индикатор камеры все еще включенуказывая, что он все еще используется.(пропущен для освобождения захвата)
Попытка сделать:
cap = cv2.VideoCapture(0)
cap.release()
После завершения, но проблема остается.
if(self.monitoringToggle == False):
self.monitoringToggle = True
self.monitoringButton.setText("Stop Monitoring")
self.th.changePixmap.connect(self.setImage)
self.th.start()
else:
self.monitoringToggle = False
self.monitoringButton.setText("Monitoring")
self.th.terminate()
cap = cv2.VideoCapture(0)
cap.release()
qImg = QImage("white_background.png")
self.videoLabel.setPixmap(QtGui.QPixmap(qImg))
class MonitoringThread(QThread):
def run(self):
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
key = cv2.waitKey(1) & 0xFF
if key == ord("q"):
break
cap.release()