Я пытаюсь написать программу в OpenCV, которая просто отображает видео с осевой камеры, которая является типом ip-камеры. Моя проблема в том, что OpenCV дает мне ошибку и сбой.OpenCV дает ошибку при попытке получить изображения с оси камеры
Ошибка:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /home/pi/opencv-2.4.5/modules/core/src/array.cpp, line 2482
terminate called after throwing an instance of 'cv::Exception'
what(): /home/pi/opencv-2.4.5/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMatAborted
Мой код:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img;
namedWindow("IMG", CV_WINDOW_AUTOSIZE);
while(true)
{
img = imread("http://10.17.14.11/jpg/image.jpg");
if(img.empty())cout<<"The image is empty\n";//This cout is printed
imshow("IMG", img);
if(waitkey(1) >=0)break;
}
}
Я попытался с помощью видеозахвата с адресом
"http://10.17.14.11/mjpg/video.mjpg"
, но я получил ту же ошибку. Я также разместил оба этих URL-адреса в своем веб-браузере, и они были действительны.
спасибо.
EDIT
Может причина VideoCapture не работает в том, что я не установлен FFmpeg?
Это может иметь место для imread, но я видел примеры, когда класс VideoCapture получает файл mjpg из внешнего местоположения, как показано выше, но он по-прежнему не работает для меня. Спасибо за ваш ответ – bijan311