我想用C++的网络摄像头(如罗技C922)捕捉图像。有没有人能成功地用60fps和720p的摄像头捕捉到图像?我阅读了下面线程中的代码并添加了"cap.set(CAP_PROP_FPS,60)",但帧速率保持在30fps左右。How to set camera fps in opencv?
然后我发布了同样的问题,但论坛正在维护中。http://answers.opencv.org/question/172992/streaming-logitec-c922-at-60fps-with-c/我将两个建议的代码都添加到了我的代码中。结果表明,fps值为33.3。在我使用cap.set(CAP_PROP_EXPOSURE,-5)的情况下,FPS是60.0,因为我在办公室,晚上在这里。我尝试使用较低的CAP_PROP_EXPOSURE值(例如-10),但是fps没有改变。使用imshow显示的图像在60fps时没有明显更新。有什么我能做的吗?
这是我使用的代码。
VideoCapture cap(0); //capture the video from web cam
if (!cap.isOpened()) // if not success, exit program
{
cout << "Cannot open the web cam" << endl;
return -1;
}
cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M','J','P','G'));
cap.set(CAP_PROP_FPS, 60);
cap.set(CAP_PROP_EXPOSURE, -5);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
cout << cap.get(CAP_PROP_FPS) << endl;
cvNamedWindow("img");
time_t cap_start, cap_end;
Mat frame;
double MAX_FRAME_NUM = 100;
time(&cap_start);
for (int n = 0; n < MAX_FRAME_NUM; n++) {
cap >> frame;
}
time(&cap_end);
double fps = MAX_FRAME_NUM / difftime(cap_end, cap_start);
cout << "fps:" << fps << endl;
cv::waitKey(0);
环境信息OpenCv: 3.3.0操作系统: Windows 10专业版集成开发环境: Visual Studio 2017处理器: i7-7560U内存16 USB: 3.0
致以最好的问候,gellpro
发布于 2018-05-16 22:27:30
我偶然发现这个相机也有同样的问题。我的环境是Ubuntu18.04,Python3.6.5和OpenCV 3.4。
我发现你的第一个链接中的this solution正在工作:
cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));
对于python,我使用的代码是:
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
cap.set(cv2.CAP_PROP_FPS, 60)
https://stackoverflow.com/questions/45883952
复制相似问题