私はWindows 7マシンのVisual Studio上でOpenCVアプリケーションを実行しています。最終的なアプリケーションの一部として、実行中のOpenCVアプリケーションと並行して実行されるタイマーが必要です。 OpenCVアプリケーションは、アイブリンク検出アルゴリズムへの入力としてリアルタイムビデオキャプチャを有する。 OpenCVコードは継続的に実行されていなければならず、一時停止または停止することはできません。しかし、瞬きの間隔を見つけるために、私はそれぞれの瞬きの後にタイマーを走らせる必要があります。したがって、点滅が検出されている間はタイマーを実行する必要があります。私はSetTimer関数とCreateTimerQueueTimer関数を使いこなし、これについてどうやって行くのかをはっきりと理解できませんでした。 C++プログラムでタイマーを実行する他の方法はありますか?どんな提案や解決策も高く評価されます。実行中のプログラムと平行に、cppでタイマーを実行する
1
A
答えて
0
なぜ点滅間隔を計算するためにタイマーが必要ですか?現在の時刻を瞬きごとに保存し、それを前の時刻から減算することはできませんか?あなたは、単純なタイマーにするためにstd::chrono
を使用することができますc++11
で
0
:
...
auto take = (end - start);
if(take > std::chrono::nanoseconds(x)) {
// ... do whatever you want here
}
ああと1:他の回答にコメントに反応して
auto start = std::chrono::high_resolution_clock::now();
// do processing here
auto end = std::chrono::high_resolution_clock::now();
std::cout << "time was " <<
std::chrono::duration_cast<std::chrono::nanoseconds>(end - start).count();
編集し、次の操作を行うことができ言及しなければならないのは、nanoseconds
を他の時間単位に置き換えることができるということです。
関連する問題
- 1. プログラムの実行中にsigsegv
- 2. プログラムの実行中に実行されるコード行は何回ですか?
- 3. SIGPIPE実行中のプログラム
- 4. タイマーの実行中にrepeatCountプロパティをリセットするには
- 5. testngの実行中にプログラムによるプロファイリングを行う方法
- 6. Androidで実行中のタスクと実行中のプロセスの違い
- 7. Linux上で実行中のプログラムのディレクトリ?
- 8. 実行中のプログラムをMATLABで中止するには?
- 9. アプリケーションサーバー内でばねプログラムを実行中
- 10. AndroidでCプログラムを実行中
- 11. VMで実行中のプログラム生成エラー
- 12. 実行中のすべてのタイマーを停止する
- 13. 実行前と実行後の条件付きでの実行中
- 14. Java実行プログラムのデフォルト実行ポリシー
- 15. 他のコマンドが実行されている間にタイマーを実行するC++
- 16. Powershell - 外部プログラムの実行中にスクリプトを中断する
- 17. マージソートアルゴリズムのベスト実行時間と平均実行時間
- 18. 既に実行中のAVDのアンドロイドプロジェクトを実行中
- 19. 1つの実行時インスタンスでJavaプログラムを実行する
- 20. C#実行ファイルディレクトリを実行中
- 21. 実行中のアクティビティをJavaのアンドロイドで実行中の進行中に無効にする方法
- 22. Vistaでプログラムでプログラムを実行する
- 23. コマンドラインでプログラムをプログラムで実行する
- 24. 実行中のJavaアプリケーションでjarアーカイブを実行する
- 25. 実行時に実行中のwhileループを終了する
- 26. pytestテストの実行中にipdb.set_trace()を実行する方法
- 27. プログラムでプログラムを実行するPseudoTTY
- 28. Windowsで実行中のC#とprotobufでLinux上で実行中のC
- 29. 実行中プロセスリスト
- 30. 実行中のEmacs Lispプログラムを中断する
1回目の点滅後にタイマーを始めると、次の点滅がタイマーが切れる前に発生するかどうかに基づいて決定したいと思います。タイマーが切れた後に次の点滅が起こると、 dは点滅カウントを再起動し、タイマーをリセットする必要があります。これでわかりやすくわかりやすくなりましたか。 – chandru