OpenCVのwaitKey()内の異なるパラメータの時間の計算と戻り値
プラットフォーム:
C++:
Python:
公式解釈:
delay≦0の場合、関数waitKeyはキーイベント(すなわちキーを押す)を無限に待つか、正数を待つ時間の長い遅延(単位:ミリ秒)を待つ.
注意:オペレーティングシステムの切り替えスレッド間の間隔が最も短いため、この機能は、コンピュータ上で実行されていた他のものに応じて、正確な遅延ミリ秒を待つのではなく、少なくとも遅延ミリ秒を待つことになります. は、 は、指定された時間が経過する前にキーが押されていない場合、 は、異なる
テストコード
その他のパラメータはいずれもボタン操作 が必要である.
結論
C++:
int cv::waitKey (int delay = 0)
Python:
retval = cv.waitKey( [,delay])
公式解釈:
delay≦0の場合、関数waitKeyはキーイベント(すなわちキーを押す)を無限に待つか、正数を待つ時間の長い遅延(単位:ミリ秒)を待つ.
注意:
Esc = 27
のようなキーが押されたコードを返します.-1
に戻る.delay
値の異なる消費時間に注意する必要がある.テストコード
#include
#include
#include
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("1.jpg");
double start, end;
imshow("car", src);
start = clock();
int delay = waitKey(1000); // 1s(1000ms) -1 1001ms
end = clock();
cout << "TotalTime = " << (double)((end - start) * 1000 / CLOCKS_PER_SEC) << "ms" << endl;
printf("waitKey = %d", delay);
return 0;
}
その他のパラメータ
int delay = waitKey(-1); // ASCII - TotalTime = 1829ms
int delay = waitKey(0); // ASCII - TotalTime = 3263ms
結論
delay > 0
で、所定のdelay
内にキー操作がなければ-1
に戻り、そうでなければ対応するASCII
に戻る.delay = 0
またはdelay < 0
の場合、対応するASCII
が返されます.