您现在的位置是:首页 >技术杂谈 >opencv打印帧率网站首页技术杂谈
opencv打印帧率
|
|
打印帧率 |
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <opencv2/core/opengl.hpp> #include <opencv2/highgui.hpp> #include <thread> #include <chrono> using namespace std; using namespace std::chrono; int main(int argc, char** argv) { double inferenceTime(0.0), t1(0.0); while (true) { t1 = static_cast<double>(cv::getTickCount()); std::this_thread::sleep_for(std::chrono::milliseconds(40)); inferenceTime = (static_cast<double>(cv::getTickCount()) - t1) / cv::getTickFrequency()* 1000; std::cout<< "FPS:" << int(1000.0f / inferenceTime * 100) / 100.0f <<std::endl; } return 0; } |
图像上绘制帧率 |
//开始时间 double inferenceTime = 0.0; //结束时间 double t2 = static_cast<double>(cv::getTickCount()); if (inferenceTime == 0) inferenceTime = (t2 - t1) / cv::getTickFrequency() * 1000; else inferenceTime = inferenceTime * 0.95 + 0.05 * (t2 - t1) / cv::getTickFrequency() * 1000; //在show_color_image图像上显示show fps cv::Mat fpsPane(35, 155, CV_8UC3); fpsPane.setTo(cv::Scalar(153, 119, 76)); cv::Mat srcRegion = show_color_image(cv::Rect(8, 8, fpsPane.cols, fpsPane.rows)); cv::addWeighted(srcRegion, 0.4, fpsPane, 0.6, 0, srcRegion); std::stringstream fpsSs; fpsSs << "FPS: " << int(1000.0f / inferenceTime * 100) / 100.0f; cv::putText(show_color_image, fpsSs.str(), cv::Point(16, 32), cv::FONT_HERSHEY_COMPLEX, 0.8, cv::Scalar(0, 0, 255)); |
抽帧方法 |
int main(int argc, char** argv) { int i(0); int tick(0); while (true) { i++; //抽帧方法 if (++tick > 0) { tick = 0; //模拟检测 std::this_thread::sleep_for(std::chrono::milliseconds(30)); std::cout << "num=" << i << " ++++++++++++++++++++++++" << std::endl; } std::cout << "num=" << i << " >>>>>>> fps=" << fps() << std::endl; //std::this_thread::sleep_for(std::chrono::milliseconds(1)); } return 0; } |
|
|
|
|