Tag: OpenCV
基本的に OpenCV (と依存ライブラリ),および標準ライブラリ以外は使用しません.
連続した画像(パラパラ漫画のうような画像)から一つの動画を作ったのでメモを残しときます。
Conclusion Use 'mp4v' or 'avc1'
対処療法ですが、ループ内の処理時間を常時計測して、そのときどきで早送りの原因となる空洞ができないように(空洞が埋まるように)、解説などのサンプルではループ内で一回の処理で終わっているwriter << frameを必要回数実行するようなプログラムを書きます。
waitKey(1)としておけば可能な限り最小の待ち時間(最大のFPS)で表示されるため、カメラの映像をリアルタイムで表示する場合は基本的にはwaitKey(1)としておけば問題ないはず。
fpsを元の動画から取得した後にfps_newと新しいフレームレートを指定して動画を保存している所が違いになります。
cv::waitKey は、ユーザーからのキー入力を取得する関数ですが、実際にはメッセージループの役割を持っています。 したがって画像を表示するためには、少なくとも一回は WM_PAINT を処理する必要があり、これが、cv::waitKey を呼び出さないと画像が表示されない理由でもあります。
OpenCVがHomebrewなどでインストールされている前提
#include <opencv2/core/utility.hpp>