web-dev-qa-db-ja.com

CV2:[警告:0] Global CAP_MSMF.CPP(674)SourCereAderCB :: ~SourceReaderCB終端ASYNCコールバック

フル警告メッセージ:

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

コード:

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()
 _

説明:
[。]走るとき、my frameウィンドウが表示され、コードを終了すると、その警告メッセージが表示されます。

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

私はこの警告を解決することはわかりません、そしてなぜそれが私を得るのか。あなたが私を修正して理解するのを手伝ってくれることを願っています。
[。]さらに、 このリンク (このリンク)==とにかく私を助けませんでした。

前もって感謝します。

4
M. Rostami

これはOpenCVのMSMFバックエンドのバグのようです。あなたはより多くの詳細を見ることができます この問題

この問題がLinuxプラットフォームに存在するとは思わない。だから私はWindowsのためのソリューションを提供しています。

Windowsのみのソリューション

Windowsプラットフォームの場合、バックエンドを他のものに変更することができます(最も好ましくはDirectShowバックエンド。このために、VideoCaptureに次のように追加します。

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

これはOpenCV>=3.4のために機能します。

14
Rahat Zaman