1
由于一些奇怪的原因,程序无法从网络摄像头读取帧。它虽然成功地打开了网络摄像机。我已经找到了这个问题,我发现了各种解决方案,他们都没有和我一起工作。这是我的代码无法从网络摄像头读取
#include <iostream>
#include <cstdlib>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
int main()
{
// access the default webcam
cv::VideoCapture cap(0);
// Double check the webcam before start reading.
if (!cap.isOpened()){
std::cerr << "Cannot open the webcam " << std::endl;
exit (EXIT_FAILURE);
}
cv::Mat frame;
cv::namedWindow("webcam",CV_WINDOW_AUTOSIZE);
while (true){
// acquire frame
cap >> frame;
// Safety checking
if (!frame.data){
std::cerr << "Cannot acquire frame from the webcam " << std::endl;
break;
}
cv::imshow("webcam", frame);
if (cv::waitKey(30) == 27){
std::cout << "esc key is pressed" << std::endl;
break;
}
}
return 0;
}
这是终止程序之前的窗口。
我使用的是Windows 7(戴尔笔记本电脑)。该代码是在与.dlls链接的发布模式下编译的。 OpenCV版本是2.4.10。 在条命令提示符
cl /EHsc main.cpp /Fetest.exe /I D:\CPP_Libraries\opencv_2.4.10\build\include /link /LIBPATH:D:\CPP_Libraries\opencv_2.4.10\build\x86\vc12\lib opencv_core2410.lib opencv_highgui2410.lib
我已经运行在Ubuntu相同的代码(双启动沿着窗户7),它开启了摄像头,但不通过HighGUI,我得到这个错误就
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
init done
opengl support available
任何建议这件事。经过一些diggings,some ppl指出cmake
,因此我需要重新安装opencv并正确配置cmake
。有没有解决这个问题,而不重新安装库,如果这真的是Ubuntu和Windows的问题?谢谢
这是如何解决我的问题? – CroCo
那么,该代码的作品,所以如果它不在您的计算机上它是一个有缺陷的安装,或您的相机与opencv不兼容。 您也可以尝试其他相机索引:'VideoCapture cap(1)'。由于某些原因,您的相机可能没有被默认设置 – Soma