Перейти к содержимому
Compvision.ru
RinOS

Работа с камерами

Recommended Posts

а как можно определить, что камера есть в системе помимо опенцв?

я подключаю телефон как веб камеру через mobiola webcam, само видео через программу идет, а вот в опенцв не схватывается.

+ возможно даже если видео не схватится через опенцв, есть вариант как то захватить часть экрана(где выводится видео) через какую нибудь программу и перенаправлять на выход понятный опенцв?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

См. пост 126 в этой теме. Там только WinAPI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

даже когда камера не подключена пишет так

post-701-0-72035100-1336303856_thumb.jpg

да и когда передается вроде тоже самое пишет.

и какую полезную информацию это дает для opencv?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во-первых разрешение, во-вторых номер устройства в системе (по поводу этого параметра не уверен), в третьих битрейт.

По поводу определить подключен девайс физически или нет, нужно допиливать код.

ЗЫ: Что то FPS странное :)

Думаю эта статейка полезна будет: https://sites.google.com/site/pengjungwu/Home/video-capture-using-vfw

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дело в том что я не знаю через какой "интерфейс" подключается камера в винде и как работает с этим опенцв и эта программа для телефона.

для опенцв надо знать битрейт\фпс для захватываемого устройства или оно само определяется? и как определяется номер устройства по порядку подключени яв систему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При вызове cvCreateCapture OpenCV использует уже выставленные у камеры настройки и ничего не меняет. Если надо что-то изменить, то получить в Винде свойства камеры лучше всего через DirectShow.

На порядковый номер устройства лучше всего не ориентироваться - установка какого-нибудь драйвера может всё нарушить.

Если при отключённом устройстве оно всё таки находится, то это глюк драйвера, тут ничего не сделаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрал Opencv под arm cortex-A8 Linux 2.6 версии 2.4.2 и 2.3.1. Обработку изображений делать удается, входные и выходные jpeg'и выдает, а вот работать с камерами USB, или просто читать avi файл не получается пример:

int main( int argc, char** argv ){

    if (argc!=2) return 1;

    CvCapture* capture = cvCaptureFromFile(argv[1]);

    if (capture==NULL){

        printf("\nerr capture video:%s\n",argv[1]);

        return -1;

    }

    IplImage *frame = 0;

    /* get fps, needed to set the delay */

    int fps = ( int )cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );


    char name[20];

    int num=0;

    while(cvGrabFrame(capture)){

        frame=cvRetrieveFrame(capture);

        sprintf(name,"frame%.4d.jpg",num++);


        IplImage* new_frame=cvCloneImage(frame);

        cvSmooth(new_frame,new_frame,CV_MEDIAN,3,3);

        cvSaveImage(name,new_frame);


    }

    printf("that's all!\n");

}

На PC Linux Debain все прекрасно работает, а вот на таргете почему-то CvCapture* capture = cvCaptureFromFile(argv[1]); всегда возвращает NULL,

Сборка 2.4.2 проводилась с ffmpeg(собран с поддержкой видео кодеков x264, vorbis,theora) так и без него, библиотеки v4l все установленны, есть подозрение, что для захвата камеры нужен GTK, но его пока собрать не удалось. Никак кодов ошибки найти не могу... куда копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

Есть у кого нибудь готовый пример, как с ip видео камеры забрать видео через rtsp:// и вывести его на форму или еще куда нибудь. Поделитесь плиз!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо номера камеры, адрес пишите, дальше все также как с обычной вэбкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо номера камеры, адрес пишите, дальше все также как с обычной вэбкой.

Спасибо, с видео немного разобрался.

Подскажите, плиз в следующем вопросе, у меня есть SDK библиотека работы с видеооборудованием, я ее подкорректировал под свои нужны для управления камерой и т.д., эта SDK написана на Visual C#, в ней небыло работы с видео, по вашим и другим примерам разобрался с выводом видео но это все работаем на Visual C++. Как теперь мне объеденить все это в одну программу. Никогда раньше не работал с Visual C, работал только с Делфи, поэтому незнаю в какую сторону смотреть. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно посмотреть в сторону emgucv, а

можно попробовать соединить все через DLL.

Пишите модули в виде DLL и используете оттуда функции из программы на любом языке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте! Небольшая проблемка есть. Как-то писал програмгу и мне необходимо было обращаться к драйверу камеры - вызывать окно настройки изображения. Тогда использовал VideoInput, там это делалось одной строкой. Теперь я пользуюсь OpenCV 242, к камере обращаюсь через VideoCapture. Тут такой возможности видимо не предусмотрено. Попытлся прикрутить VideoInput, и вроде все без ошибок, но окно настрое не появляется. Кто-нибудь решал такую проблему?

Или же все настройки делать через VideoCapture...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тоже нужно было вызвать это окно, но в OpenCV такой функции нет, пришлось использовать другую библиотеку (vidgrab - первое что попалось под .net). Кстати еще одна особенность, это окно может появляется с задержкой в несколько секунд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как считать информацию о камерах было в этой теме, см. пост №159 (на 8 стр.), а устанавливалось вроде бы все нормально и средствами OpenCV.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вижу актуальная тема. всем привет!

поделюсь и я свой проблемкой.

пробую получить картинку с ip камеры beward bd4070h через rtsp.

ОС у меня AltLinux 6, OpenCV 2.2 (сорри с репа)

пробую это сделать так:


CvCapture* capture = cvCreateFileCapture("rtsp://х.х.х.х:50х/h264");

получаю такое:

$ ./test

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

[NULL @ 0x80b9860] Interleaved RTP mode is not supported yet.Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

Using network protocols without global network initialization. Please use avformat_network_init(), this will become mandatory later.

ну и понятно, что через встроенный в ОС видео проигрыватель картинка идет без поблем.

сталкивался ли кто с такой проблемой, какие пути решения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не сталкивался, но, похоже, что внутри OpenCV не хватает вызова avformat_network_init(). Можно попробовать новую версию поставить (скомпилить из исходников). Или внутри этой поправить. Сорсы есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хм. да сборка из исходников что то не пошла, питон мой почемуто не понравился.

а новенький пакетик будет тока для 7 версии ОС, так что...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
хм. да сборка из исходников что то не пошла, питон мой почемуто не понравился.

потому что надо ставить numpy еще скорее всего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня она называется libnumpy2.0.0 и она стоит так как и питон с этим numpy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если использовать уже готовые бинарники по идее достаточно просто скопировать cv2.pyd

из

C:\OpenCV-2.4.3\build\python\2.7

в

C:\Python27\Lib\site-packages

+ еще наверно все *.dll opencv

хотя может еще *.py отсюда.

C:\OpenCV-2.4.3\modules\python\src2

а вообще поддержка питона в опенцв и само управление пакетами в питоне какое то кривое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня линух. и с кривизной я согласен. поэтому и оставил это дело. там еще очень сильная зависимость от версии.

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

на линух, как то все гораздо проще оказалось. раз и заработало.

ни лицензий не надо, ничего, просто в тектовом редакторе пишеш код. make и все готово, только запустить осталось! красота. чем больше смотрю на линух, тем больше нравится!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если мешает Питон и тебе он не нужен, то удали его оттуда. Ты же CMake используешь для генерации make файлов? Отключи в нём флаги использования Питона и собирай. Я под Убунтами разных версий собирал разные версии OpenCV и всегда успешно. Надо просто конфиги внимательно смотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если не сложно, кинь примерчик, где отключить... а то я по умолчанию с инструкции сборку зарустил... у меня вывалилась ошибка на питоне... и у меня все настроение упало.. я все позакрывал. а в понедельник мож опять взойдет, попробую пересобрать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я запустил GUI для CMake, указал пути, мышкой кликнул на использовании Питона, сгенерировал make-файлы. Всё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×