Считывает пустое изображение с камеры OpenCV C++
Всем привет.Мне нужно просто считывать кадры с видеокамеры и показывать их в окне. Ошибку выдает именно на проверки:
if (img.empty())
{
std::cout << "empty image" << std::endl;
return 0;
}
То есть считывается пустое изображение. Мой код:
#include <opencv2/opencv.hpp>
#include <iostream>
#include <iostream>
using namespace std;
cv::Mat frame;
int main(int ac, char** av) {
std::cout << cv::getBuildInformation();
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
std::cout << "Can't open the camera" << std::endl;
return -1;
}
cv::Mat img;
cout << "Started video..."<<endl;
while (cap.isOpened())
{
try
{
cap >> img;
if (img.empty())
{
std::cout << "empty image" << std::endl;
return 0;
}
cv::imshow("camera img", img);
if (cv::waitKey(25) == 27)
break;
}
catch( cv::Exception& e )
{
const char* err_msg = e.what();
std::cout << "exception caught: " << err_msg << std::endl;
}
}
return 0;
}
Источник: Stack Overflow на русском