我正在研究Hough圈并尝试解决fps问题。
我希望限制我的fps,以便我可以测试哪种fps最适合我的设备。
time_t start, end;
int counter = 0;
time(&start);
//Create a variable to store image
Mat src;
//Create video capture
VideoCapture capture;
//open video from either a file or webcam
//capture.open("C:\\Users\\Student-ID\\Downloads\\SPACe Mission IIIA\\GOPR0503.mp4");
capture.open(0);
//set frame height
capture.set(CV_CAP_PROP_FRAME_HEIGHT, 120);
capture.set(CV_CAP_PROP_FRAME_WIDTH, 120);
//Set the capture FPS
capture.set(CV_CAP_PROP_FPS,25);
//store whatever is captured to src
capture.read(src);
//Debugging purpose
cout << "Vidoe opened" << endl;
if (!src.data) {
std::cout << "ERROR:\topening image" << std::endl;
return -1;
}
//Create window to display videos
cv::namedWindow("image1", CV_WINDOW_AUTOSIZE);
vector<Vec3f> circles;
time(&end);
++counter;
cout << "fps is: " << counter / difftime(end, start) << endl << endl;
}
return 0;
}
所以我在我的代码中加入了这一行
capture.set(CV_CAP_PROP_FPS,1);
然而,这段代码似乎是假的,无论我如何更改数字,它都不会生效。 我在这里遇到了一些基本的错误吗?
这里的代码
capture.set(CV_CAP_PROP_FRAME_HEIGHT, 120);
capture.set(CV_CAP_PROP_FRAME_WIDTH, 120);
有时也对画面尺寸没有影响,我想知道原因。
谢谢