如果我用代码块编译代码,为什么我的代码运行速度更快

Why is my code running faster if i compiled it with codeBlocks

本文关键字:代码 运行 我的 速度 为什么 编译 如果      更新时间:2023-10-16

我想测量相机的FPS。我在这里找到了一个简单的代码。如果我用CodeBlocks(在Ununtu上)编译代码并运行循环600次,结果为27 fps。

如果我从终端进行编译:

    g++ -Wall main.cpp -o  main -I/usr/local/include/ -lopencv_core -lopencv_highgui

结果是14 fps。为什么从终端编译后会这么慢?

这是代码

#include "opencv2/opencv.hpp"
#include <time.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// Start default camera
VideoCapture video(0);
// With webcam get(CV_CAP_PROP_FPS) does not work.
// Let's see for ourselves.
double fps;

// Number of frames to capture
int num_frames = 600;
// Start and end times
time_t start, end;
// Variable for storing video frames
Mat frame;
cout << "Capturing " << num_frames << " frames" << endl ;
// Start time
time(&start);
// Grab a few frames
for(int i = 0; i < num_frames; i++)
{
    video >> frame;
}
// End Time
time(&end);
// Time elapsed
double seconds = difftime (end, start);
cout << "Time taken : " << seconds << " seconds" << endl;
// Calculate frames per second
fps  = num_frames / seconds;
cout << "Estimated frames per second : " << fps << endl;
// Release video
video.release();
return 0;
}

您只需要按照code :: blocks编译的方式在命令行上进行编译。要查看那是什么,请转到编译器的设置,并调试并启用其中一个构建记录选项。有关其中的更多详细信息:Code :: blocks verbose build

我认为我解决了问题。当灯光明亮时,FPS很高。如果是黑暗的,则FPS很低。因此,也许与亮度有联系...