не могу читать с веб-камеры

По каким-то странным причинам программе не удается прочитать кадр с веб-камеры. Он успешно открывает веб-камеру. Я искал эту проблему, и я нашел множество решений, ни одно из которых не работало со мной. Это мой код

#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

Я запустил тот же код в Ubuntu (двойная загрузка наряду с Windows 7), и он открывает веб-камеру, но не через HighGUI, и я получил эту ошибку

HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
init done
opengl support available

Любые предложения по этому вопросу. После некоторых раскопок некоторые люди указал на cmakeпоэтому мне нужно переустановить opencv и настроить cmake должным образом. Есть ли какие-либо решения для этой проблемы без переустановки библиотеки, если это действительно проблема для Ubuntu и Windows? Спасибо

1

Решение

Следуйте документации opencv для VideoCapture heure: VideoCapture. Это простой пример для захвата видео в C ++.

Есть некоторые различия с вашим кодом, на это Mat frame внутри петли.

-1

Другие решения


По вопросам рекламы [email protected]