私の質問は、この回答で提供されている解決策に関連しています。
スライダーの位置を更新すると、ビデオは常にフレーム0から始まりますが、スライダーは移動した位置から先に進みます。どうすればこれを修正できますか?
トラックバーの作成に使用されるすべてのパラメータを理解していることを確認してください。そのうちの1つは、という名前count
で、スライダーの最大位置を定義します(最小は0です)。
あなたがする必要があるのは、ビデオファイルのフレームの総数を取得し(ビデオのフレームを読み始める前に)、この値をcount
パラメータとして渡すことです。したがって、スライダーの最大位置はビデオの合計フレームです。 。
ヒント:cvGetCaptureProperty()
とCV_CAP_PROP_FRAME_COUNT
。
次に、スライダーを更新するには、現在のフレームの番号を取得し(を見CV_CAP_PROP_POS_FRAMES
てください)、タイプのコールバックがCvTrackbarCallback
トラックバーにこの情報を設定して、その位置を正しく更新することを確認します。