実際、私はC++ opencv 2.4.10を使ってビデオから車両を検出して追跡しようとしています。そうしました。出力ビデオのフレームレートを探したいと思います。誰も私にこのことについてのブログやチュートリアルを教えてもらえますか?C++ opencv 2.4.10を使ってビデオのフレームレートを見つける方法?
ありがとうございます。
実際、私はC++ opencv 2.4.10を使ってビデオから車両を検出して追跡しようとしています。そうしました。出力ビデオのフレームレートを探したいと思います。誰も私にこのことについてのブログやチュートリアルを教えてもらえますか?C++ opencv 2.4.10を使ってビデオのフレームレートを見つける方法?
ありがとうございます。
このようなものが役立ちます。
#include <iostream>
#include <opencv2/opencv.hpp> //for opencv3
#include <opencv/cv.hpp> //for opencv2
int main(int argc, const char * argv[]) {
cv::VideoCapture video("video.mp4");
double fps = video.get(cv::CAP_PROP_FPS);
std::cout << "Frames per second : " << fps << std::endl;
video.release();
return 0;
}
すべてのビデオ処理を実行するコードにループが必要です。
のは、あなたがこの擬似コードに似た何かを持っているとしましょう:
//code initialization
cv::VideoCapture cap("some-video-uri");
//video capture/processing loop
while (1)
{
//here we take the timestamp
auto start = std::chrono::system_clock::now();
//capture the frame
cap >> frame;
//do whatever frame processing you are doing...
do_frame_processing();
//measure timestamp again
auto end = std::chrono::system_clock::now();
//end - start is the time taken to process 1 frame, output it:
std::chrono::duration<double> diff = end-start;
std::cout << "Time to process last frame (seconds): " << diff.count()
<< " FPS: " << 1.0/diff.count()\n";
}
のthatsそれは...フレーム、フレームごとにFPSを計算することは可能性が非常にバリエーションの結果を生成することを考慮に入れます。より少ない変形FPSを得るためには、この結果をいくつかのフレームで平均する必要があります。
私が知っている限り、箱から取り出した神計算機はありませんが、実装するのはかなり簡単です。フレーム間の時間を見積もるだけです。これは、フレーム単位で、またはnフレームごとに行うことができます。次に、画面/コンソールに番号を出力します。見積もりをする際に助けが必要ですか? – Dredok
はい、お願いします...もし私が助けてくれれば、私にとって非常に役立つでしょう... – Avijit
あなたのコードがカメラからのビデオストリームを取得するレートを測定したい、あなたのコードがビデオカメラからディスクファイルにフレームを書き込むレートを測定したい、またはc)ビデオファイル(「mp4」と言う)がすでに記録されていて、そのフレームレートを知りたい場合 –