Код C++ Захват изображения с IP/Ethernet-камер (AXIS Cam)

У меня 4 камеры Axis IP. Мне нужен код для захвата изображения с этих камер. У меня есть код opencv для захвата изображения с USB-камер, но я не знаю, как захватывать с IP-камер.


person user2179544    schedule 17.03.2013    source источник


Ответы (1)


int main()
{
    Mat frame;
    namedWindow("video", 1);
    VideoCapture cap("http://150.214.93.55/mjpg/video.mjpg");
    while ( cap.isOpened() )
    {
        cap >> frame;
        if(frame.empty()) break;

        imshow("video", frame);
        if(waitKey(30) >= 0) break;
    }   
    return 0;
}

понятия не имею, как выглядят ваши URL-адреса, но opencv, кажется, настаивает на том, что он должен заканчиваться на mjpg. поэтому, если это не так, трюк состоит в том, чтобы добавить фиктивный параметр:

http://my/cool/ip-cam.ie?dummy=video.mjpg

если вам нужно открыть все 4 камеры сразу, вам нужен VideoCapture для каждой:

VideoCapture cap1("url1");
VideoCapture cap2("url2");
VideoCapture cap3("url3");
VideoCapture cap4("url4");
person berak    schedule 17.03.2013
comment
hello.cpp:3:5: ошибка: 'Mat' не был объявлен в этой области hello.cpp:3:9: ошибка: ожидается ';' перед 'frame' hello.cpp:4:27: ошибка: 'namedWindow' не был объявлен в этой области hello.cpp:5:5: ошибка: 'VideoCapture' не был объявлен в этой области hello.cpp:5:18: ошибка: ожидается ';' перед 'cap' hello.cpp:6:13 : error: 'cap' не был объявлен в этой области hello.cpp:8:16: error: 'frame' не был объявлен в этой области hello.cpp:11:30: error: 'imshow' не был объявлен в этой области hello.cpp:12:22: ошибка: «waitKey» не был объявлен в этой области - person iAmNotVeryGoodAtThis; 07.10.2013