cv::WaitKey() を制限して、キーを 1 回押すだけにする方法はありますか? つまり、esc ボタン?このターゲット キー以外の任意のキーを押して、ウィンドウを開いたままにできるようにしたいと考えています。
質問する
5687 次
2 に答える
6
私はこの質問に出くわしましたが、同じ答えを探している人がもっといると確信しています. 実は、これを行うにはかなり簡単な方法があります。cv::waitKey() は、押されたキーのキーコードに対応する整数を返します。戻り値を探しているキーコードと比較するループに waitKey 呼び出しを入れることで、特定のキーを待つことができます。
ただし、ここにはかなり大きな落とし穴があります。一部のプラットフォームでは、最上位ビットが戻り値に設定されているため、通常のキーコードと比較するだけではループが壊れることはありません。次のように、最上位ビット以外のすべてにビットごとの AND を使用して、これを回避します。
while((cv::waitKey() & 0xEFFFFF) != 27); //27 is the keycode for ESC
于 2016-04-20T21:54:47.110 に答える
-2
あなたはこれを行うことができます:
// Loop until escape is pressed
while (cvWaitKey(1) != '\33') {
}
于 2013-02-22T16:05:26.340 に答える