web-dev-qa-db-fra.com

CV2: [Avertissement: 0] Global CAP_MSMF.CPP (674) SourcereadERCB :: ~ SourcerEeDeArcb Terminer ASYNC Rappel

Message complet de l'avertissement :

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

Code:

import numpy as np
import cv2

captureDevice = cv2.VideoCapture(0) #captureDevice = camera

while True:
    ret, frame = captureDevice.read() 

    cv2.imshow('my frame', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

captureDevice.release()
cv2.destroyAllWindows()

Description :
[.____] quand il court, le my frame Windows apparaît et lorsque je terminais le code, cela me donne ce message d'avertissement.

Python: 3.7.4
OpenCV (cv2): 4.1.2
OS: Windows 10

Je ne sais pas pour corriger cet avertissement et pourquoi ça me donne. J'espère que vous m'aiderez à résoudre et à comprendre cela.
[.____] En outre, les réponses de ce lien N'ai-t-il pas aidé de toute façon.

Merci d'avance.

4
M. Rostami

Cela semble être un bogue dans le backend MSMF d'OPENCV. Vous pouvez voir plus de détails dans ce numéro .

Je ne pense pas que ce problème existe sur des plates-formes Linux. Je fournis donc la solution pour Windows.

Solution Windows uniquement

Pour la plate-forme Windows, vous pouvez modifier le backend à autre chose (le plus préférablement DirectShow Backend. Pour cela, ajoutez à votre VideoCapture comme ci-dessous:

captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW) #captureDevice = camera

Cela fonctionne pour OpenCV>=3.4.

14
Rahat Zaman