Russian Qt Forum

Qt => Мультимедиа => Тема начата: brutalis от Февраль 22, 2013, 19:30



Название: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 22, 2013, 19:30
доброго времени суток. пользуясь различными источниками собрал прогу. появились следующие вопросы/проблемы:
1. при запуске ругается (см. рис), причем при запуске дебаг версии после сообщения об ошибки выводит картинку а при запуске релиз версии нет.
2. как сделать так чтобы картинка с камеры передовалась на форму а не открывалась в отдельном окне.
3. как осуществить доступ к камере по IP
4. возможно ли заставить прогу брать *.dll из папки а не из корня.
5. как заставить ее записывать видео

там две кнопки, одна(start) передает картинку с камеры в окно, вторая должна делать тоже самое + еще записывать видео(видео не пишет)


подскажите как со всем этим бороться или наведите на места где можно почитать, желательно на русском.

заранее спасибо.

 использую qt 4.8-migw из пакета QTSDK 1.2.1 и OPENCV

ps извиняюсь за размер архива. просто запихнул в него библиотеки которые требуются для работы проги
прога http://files.mail.ru/D0B526EF63874F7D82EA4878D24DED5D


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Февраль 22, 2013, 19:48
А чего такой маленький Вы скриншот запостили? Ничего не видно.

1. не видно, что за ошибка.
2. рисовать cv::Mat на виджете.
3. OpenCV это не поддерживает.
4. наверное можно :)
5. документация (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html)


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 22, 2013, 19:58
А чего такой маленький Вы скриншот запостили? Ничего не видно.




за скрин извиняюсь. перезалил


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Февраль 22, 2013, 20:02
В первый раз вижу, чтобы переменную с "-0" сравнивали. Странно


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 22, 2013, 20:29
В первый раз вижу, чтобы переменную с "-0" сравнивали. Странно
вроде там с 0 сравнивается. сейчас невспомню


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 25, 2013, 08:36

3. OpenCV это не поддерживает.

 документация (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html)
допустим. тогда как мне получить картинку с web(ip) камеры?


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: Bepec от Февраль 25, 2013, 11:35
Обратиться к её апи :) Обычно оно имеется на сайте производителя.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 25, 2013, 14:15
Обратиться к её апи :) Обычно оно имеется на сайте производителя.
мне б примерчик)


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 25, 2013, 21:15
А чего такой маленький Вы скриншот запостили? Ничего не видно.

1. не видно, что за ошибка.
2. рисовать cv::Mat на виджете.
3. OpenCV это не поддерживает.
4. наверное можно :)
5. документация (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html)
если opencv это не поддерживает тобподскажите, как мне получить картинку с веб(IP)-камеры средстами qt


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: lesav от Февраль 25, 2013, 23:10
http://www.google.ru/search?q=OpenCV+Qt


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 25, 2013, 23:16
http://www.google.ru/search?q=OpenCV+Qt

googlom я тоже пользоваться умею.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: lesav от Февраль 25, 2013, 23:19
Дык вчем проблемы то! Пользуйтесь с пользой!


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 26, 2013, 08:32
Дык вчем проблемы то! Пользуйтесь с пользой!
если бы то что я нашел  на гугле мне помогло, то я и не стал бы обращаться за помощью


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: Bepec от Февраль 26, 2013, 09:09
Ну вы приведите то, что нашли. Какая у вас камера, допустим, тоже хотелось бы знать.



Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 26, 2013, 09:22
Ну вы приведите то, что нашли. Какая у вас камера, допустим, тоже хотелось бы знать.


нашел следующее: http://habrahabr.ru/post/148467/   http://robocraft.ru/blog/computervision/275.html   http://locv.ru/wiki/%D0%9E%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5
с усб камеры я картинку получил, осталось заставить писать видео(это тоже не получается. скрин ошибки есть выше). но хотелось бы получать картинку с любой веб(IP)-камеры в сети


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: Bepec от Февраль 26, 2013, 09:57
Говорят же тебе, что с usb и с удалённой камеры, это разные вещи.

С usb получается картинка за 2 минуты, из них 15 секунд на скачивание openCV :D


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 26, 2013, 10:31
Говорят же тебе, что с usb и с удалённой камеры, это разные вещи.

С usb получается картинка за 2 минуты, из них 15 секунд на скачивание openCV :D
это я понял. тогда как получить картинку с удалённой камеры. желательно попроще(пример или описание\мануал желатьно на русском) тк пока очень плохо с этим делом))


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: Bepec от Февраль 26, 2013, 10:38
Я думаю, что это зависит от камеры :D


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 26, 2013, 11:00
Я думаю, что это зависит от камеры :D
а чего нибудь универсального более менее нету?))


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: Bepec от Февраль 26, 2013, 11:59
ХЗ. На мой неопытный взгляд, каждый производитель камер делает своё апи. Отличия минимальны как бы, но... Но различия могут быть фатальными.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Февраль 26, 2013, 12:05
М... был не прав, через CGI поддерживается воспроизведение. Не знаю, будет ли это поддерживаться из коробки в виндовс (возможно потребуется сборка библиотек opencv), но факт - возможность есть (http://robocv.blogspot.ru/2012/01/using-your-ip-camera-with-opencv.html).


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Февраль 26, 2013, 20:38
М... был не прав, через CGI поддерживается воспроизведение. Не знаю, будет ли это поддерживаться из коробки в виндовс (возможно потребуется сборка библиотек opencv), но факт - возможность есть (http://robocv.blogspot.ru/2012/01/using-your-ip-camera-with-opencv.html).
вот бы еще на русском и под win)))


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 04, 2013, 19:48
нашел такой кусок кода. при компиляции ругается на цикл while, а точнее на vid и imshow
Код:
{using namespace std;
    using namespace cv;
    VideoCapture vid("http://192.168.1.7:65534/videostream.cgi?user=admin&pwd=123456&resolution=32"); //change this URL according to your camera
    if (!vid.isOpened())
    {

        cout << "could not capture";
         //break;
    }

   Mat *frame;
   // IplImage *frame=0;
    cvNamedWindow("IPcamera", 1);
    char key = 'a';

    while(true)
    {

        vid.grab();
        vid.retrieve(frame);
        imshow("IPcamera", frame);
        key = waitKey(10);
    }

    destroyAllWindows();
     break;




}
подскажите что не так


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 04, 2013, 20:56
Как сильно ругается? Что пишет?


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 04, 2013, 21:15
Как сильно ругается? Что пишет?

video\video.cpp:269: ошибка: no matching function for call to 'cv::VideoCapture::retrieve(cv::Mat*&)'
video\video.cpp:270: ошибка: invalid initialization of reference of type 'const cv::_InputArray&' from expression of type 'cv::Mat*'
\opencv2\highgui\highgui.hpp:78: ошибка: in passing argument 2 of 'void cv::imshow(const std::string&, const cv::_InputArray&)'


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 04, 2013, 21:25
Код
C++ (Qt)
Mat *frame;
на
Код
C++ (Qt)
Mat frame;


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 04, 2013, 21:28
теперь говорит
video\video.cpp:-1: ошибка: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
video\video.cpp:-1: ошибка: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
video\video.cpp:-1: ошибка: undefined reference to `cv::Mat::deallocate()'
:-1: ошибка: collect2: ld returned 1 exit status
 ???


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 04, 2013, 21:33
Теперь opencv dll-ки надо цеплять в проект.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 04, 2013, 21:35
Например так (файл *.pro):
Код
C++ (Qt)
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_core242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_imgproc242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_objdetect242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_contrib242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_highgui242

Меняем версию (242) и пути на свои.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 04, 2013, 21:36
Теперь opencv dll-ки надо цеплять в проект.
подскажешь какие ?)


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 04, 2013, 22:18
Например так (файл *.pro):
Код
C++ (Qt)
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_core242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_imgproc242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_objdetect242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_contrib242
win32: LIBS += -L$$PWD/../opencv/2.4.2/build/x86/vc10/lib/ -lopencv_highgui242

Меняем версию (242) и пути на свои.
библиотеки подсунул. скомпилил. при запуске выдал следующее


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 04, 2013, 22:33
Не скачивается и не увеличивается для просмотра скриншот почему-то


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 05, 2013, 22:38
перезалил
http://files.mail.ru/B9D3C8B7BD424BB99FC4B638A6D29061?t=1
http://files.mail.ru/B9D3C8B7BD424BB99FC4B638A6D29061
что то одно точно должно работать)


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 05, 2013, 22:42
Тоже не работает. Картинки маленькие только. Не увеличить, ничего не видно.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 05, 2013, 22:46
еще раз
http://files.mail.ru/FB13E36F33074128AE37356347E7C49F


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 05, 2013, 22:49
позже исходники попробую выложить


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 05, 2013, 23:07
Открыл наконец. Как всегда ошибка информативна. Я думаю, что каких-то библиотек бинарник не видит. В виндовсе, похоже, не всегда показывается предупреждение, если чего-то не хватает. Просто ставит перед фактом ничего не говорящим сообщением и крашится.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 06, 2013, 08:13
если исходники залью, посмотришь в чем проблема?


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 06, 2013, 13:59
Я на Linux работаю. Да и не в исходниках дело скорее всего. Ты запускаешь через Проводник, а не в IDE, а значит наверняка забыл закинуть в папку с бинарником все необходимые dll.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 06, 2013, 16:04
и на том спасибо. буду думать. может сам додумаю или подскажет кто.

на всякий слуяай исходник http://files.mail.ru/6DE027278B5E455197CE2A9AABD8A60B


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 06, 2013, 19:10
вот что в выводе пишет
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file C:/slave/WinInstallerMegaPack/src/opencv/modules/core/src/array.cpp, line 2482
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 07, 2013, 00:59
Наверное всё же имеет смысл взять пример видеозахвата из исходников OpenCV. Собрать его. Если норм, то перенести код в Qt-проект. Снова собрать, если норм, начинать добавлять функционал. А то в исходниках у тебя понамешано много всего. Да и зачем в исходники было постить dll. А то уж очень великоват размер (90 мегабайт).


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 07, 2013, 08:50
забыл выкинуть их оттуда) без них работать не хотело совсем


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: alexis031182 от Март 07, 2013, 11:09
У тебя там Videoinput используется. Как я понял, это DirectShow функционал подключается. На первоначальном этапе лучше поубирать всё лишнее. Хотя бы просто захват через opencv с параметрами по умолчанию надо сделать.


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 07, 2013, 22:19
буду пробовать. может ечть еще варианты как получить картинку с ip камеры? 


Название: Re: Захват изображений с веб(IP)-камеры
Отправлено: brutalis от Март 21, 2013, 14:29
up. проблемы все еще актуальны