Opencv3 camera release не работает с pyqt5

Я использую opencv3 для захвата изображения с помощью веб-камеры. Затем я показываю изображение для маркировки с помощью PyQt5. Вот мой код ниже. проблема, с которой я столкнулся, заключается в том, что камера не отключается после съемки изображения. Мне нужно вручную закрыть программу / остановить скрипт, чтобы свет камеры погас. Я что-то упускаю? Где пробел в моих знаниях? Как я могу это исправить?

class View_image(QtWidgets.QWidget):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self, parent)
        self.ui = view_image_dialog.Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.button_clicked)

    def button_clicked(self):
        cap = cv2.VideoCapture(0)

        if cap.isOpened():
            ret, frame = cap.read()
        else:
            ret = False
        cap.release()

        image_Qt=QImage(frame,frame.shape[1],frame.shape[0],QImage.Format_RGB888)
        imgswap = image_Qt.rgbSwapped()
        self.ui.label.setPixmap(QPixmap.fromImage(imgswap))


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    c = View_image()
    c.show()
    sys.exit(app.exec_())

Я могу делать снимки, но после этого камера не отключается. Я могу продолжать захватывать изображения и отображать их для меток, но в оболочке появляется следующее сообщение об ошибке / предупреждение:

[ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -1072873821
[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -1072873821

Я использую opencv3, 64-разрядную версию Windows 10, PyQt5 5.11.2

Я протестировал ваш сценарий с веб-камерой моего ноутбука, и он работает правильно, вы пробовали с другой камерой? Вы пробовали на другом ПК?

eyllanesc 26.10.2018 07:40

Какое предупреждение ???

eyllanesc 29.10.2018 01:28

он работает, но проблема в том, что камера не срабатывает, пока я не закрою работающую программу. Я могу продолжать делать снимки, но получаю это предупреждение в оболочке [WARN: 0] videoio (MSMF): OnReadSample () вызывается со статусом ошибки: -1072873821 [WARN: 0] videoio (MSMF): async ReadSample () call is сбой со статусом ошибки: -1072873821

raj 29.10.2018 01:34

Эта информация важна, вы должны разместить ее как редакцию своего вопроса.

eyllanesc 29.10.2018 01:35

было бы хорошо указать версию opencv, которую вы используете (она указана), версию PyQt5 и вашу ОС.

eyllanesc 29.10.2018 02:30

Спасибо, что сказали мне это, поскольку вы можете сказать, что я новичок, я ценю вашу помощь с этим! Я обновил по вашим запросам ..

raj 30.10.2018 03:22
1
6
311
0

Другие вопросы по теме