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