@GameDev_Easy
Сегодня я пишу на змеях...

Почему вылетает WARN при работе с камерой в OpenCV, Python?

Есть код, который сканирует QR-код:

import cv2
import numpy as np
import pyzbar.pyzbar as pyzbar

cap = cv2.VideoCapture(0)

while True:
    _, frame = cap.read()

    decodedObjects = pyzbar.decode(frame)
    for obj in decodedObjects:
        print("Data", obj.data)

    cv2.imshow("Frame", frame)

    key = cv2.waitKey(1)
    if key == 27:
        break


Всё работает. Необходимо сделать из этого кода функцию, которая будет возвращать первое полученное значение. При попытке изменить строку print("Data", obj.data) на return obj.data в печатается следующее:

[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback


При этом, программа продолжает работать (не вылетает), но никакой другой код после строки вызова получившейся функции не выполняется.

Что делать, чтобы это пофиксить // предложите альтернативу для того, чтобы сделать из этого функцию.

P.S. Директория C:\Projects\opencv-python\opencv\... на диске C:\ не обнаружена
  • Вопрос задан
  • 1681 просмотр
Пригласить эксперта
Ответы на вопрос 1
adugin
@adugin Куратор тега Python
1) То есть вы используете return вне функции? И чего вы при этом ждёте, кроме ошибки?
2) Проверяйте успешность возвращаемого результата, и только потом обрабатывайте frame:
ret, frame = cap.read()
if ret:
    ...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы