Я использую 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, Windows 10 64-bit, PyQt5 5.11.2