По каким-то странным причинам программа не может прочитать фрейм с веб-камеры. Тем не менее, он открывает веб-камеру. Я искал эту проблему, и я обнаружил множество решений, с которыми никто из них не работал. Это мой кодне может читать с веб-камеры
#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 (Dell ноутбук). Код компилируется в режиме выпуска, связанного с DLL. Версия 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
Я запустить тот же код в убунту (двойной загрузки наряду с Windows 7), и это открывает веб-камеру, но не через HighGUI и я получил эту ошибку
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
init done
opengl support available
Любые предложения, касающиеся это вопрос. После некоторых раскопок some ppl указал на cmake
, поэтому мне нужно переустановить opencv и правильно настроить cmake
. Есть ли какие-либо решения для этой проблемы без переустановки библиотеки, если это действительно проблема для ubuntu и Windows? Спасибо
Как это решает мою проблему? – CroCo
Ну, этот код работает, поэтому, если он отсутствует на вашем компьютере, это либо неисправная установка, либо ваша камера, которая не совместима с opencv. Вы также можете попробовать другой индекс камеры: 'VideoCapture cap (1)'. Возможно, по какой-либо причине ваша камера не установлена по умолчанию – Soma