2013-12-04 5 views
0

Я пытаюсь написать программу в 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 cvGetMat

Aborted

Мой код:

#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?

ответ

0

Я предполагаю, что функция «imread» выполняет поиск файлов только в текущем хосте. Вы должны загрузить файл другими способами, а затем открыть его с помощью imread.

+0

Это может иметь место для imread, но я видел примеры, когда класс VideoCapture получает файл mjpg из внешнего местоположения, как показано выше, но он по-прежнему не работает для меня. Спасибо за ваш ответ – bijan311

0

Ошибка, вероятно, из-за того, что ни imread, ни VideoCapture не могут открывать удаленные изображения. Легко проверить, попытаетесь ли вы вместо этого прочитать локальное изображение. По крайней мере, я не мог найти ничего в VideoCapture documentation, которые предполагают, что удаленные пути действительны.

Если вы видели какой-то пример, возможно, он использовал какой-то расширенный класс. Это может быть очень полезно для будущих читателей, если вы найдете URL-адрес примера.

+0

В некоторых местах я видел использование внешнего URL-адреса http://answers.opencv.org/question/133/how-do-i-access-an-ip-camera/ и http: // stackoverflow .com/вопросы/17697923/OpenCV-VideoCapture-IP-камера-переподключение – bijan311

Смежные вопросы