2016-12-17 67 views
1

OpenCVキャプチャされた画像の表示ループにCv2.WaitKey(1)行が含まれていないと、画像がレンダリングされません。 C++、phyton、またはC#でも同じことが起こります。OpenCV - キャプチャループのwaitkeyなしで画像が表示されない

これが原因で、別のオプションがありますか?

この例では、C#(opencvsharp)である:

VideoCapture cap = new VideoCapture(); 

Window w = new Window();  

cap.Open("animation.avi"); 

while (cap.Read(src)) { 
    Cv2.WaitKey(1); 
    w.ShowImage(src); 
} 
+0

@Rama Nahこれはイメージを表示するために、なぜ呼び出す必要があるかというよりもそうです。私は彼が自分自身で何をしているのかを知っていると思う。 –

答えて

2

技術的highguiウィンドウを更新するための時間を得るために呼ばれるようにwaitkey()が必要です。

(C#でShowImageimshow()関数を参照マニュアル OpenCVのから:

この関数は、指定されたミリ秒間 画像を表示waitKey機能によって従わなければなりません。そうでない場合は、 イメージは表示されません。たとえば、waitKey(0)は、任意のキーを押す(画像表示に適している)まで無限に のウィンドウを表示します。 waitKey(25) は、25ミリ秒間フレームを表示します。その後、表示は自動的に になります。

waitKey()機能(C#でWaitKey())(あなたがビデオを読み取るためにループに入れた場合、それは ビデオフレームごとに表示されます):

この機能はあります イベントをフェッチして処理できるHighGUIの唯一のメソッドです。したがって、 イベント処理の注意を払う環境でHighGUIが使用されていない限り、通常のイベント の処理のために定期的に呼び出す必要があります。

+0

引用したOpenCVのドキュメンテーションのリンクやリファレンスを提供できますか? – Rama

+0

http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey –

+0

これはOpenCV 3.1.0に固有のものです。http://docs.opencv.org/trunk/d7/dfc /group__highgui.html#ga5628525ad33f52eab17feebcfba38bd7 –

関連する問題