opencvでFPSを表示
処理速度が気になってFPSを表示したいとき用のクラス.
#include "opencv2/opencv.hpp" #include <chrono> #include <sstream> class FPS{ private: std::chrono::system_clock::time_point Lstms; public: void putFps(cv::Mat m){ auto nowms = std::chrono::system_clock::now(); auto diff = nowms - Lstms; Lstms = nowms; std::stringstream ss; ss << int(1000.0 / double(std::chrono::duration_cast<std::chrono::milliseconds>(diff).count())); cv::putText(m, ss.str(), cv::Point(0, 20), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(255)); } };
使う前に
FPS fps;
とかで宣言しといて,
fps.putFps(frame);
ってしてやるとMatにFPSを書き込んでくれる.
もっときれいに書けるだろうけど,そこまで重要じゃなさそう.