Остановить поток захвата камеры, но невозможно - PullRequest
0 голосов
/ 26 сентября 2019

Я использую 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...