Opencv и видеозахват

Тема в разделе "C и С++ FAQ", создана пользователем skysun, 19 ноя 2010.

  1. skysun

    skysun Гость

    Здравствуйте.
    Смотрел примеры на OpenCV.
    Теперь мучает вопрос. Мне нужно сделать захват видео с платы видеозахвата или с тюнера. Позволяет ли OPENCV это сделать или же можно только с камеры?
    И как получить список установленных видео источников? И как их от конфигурировать?
    Так - "VideoCapture cap(0); // open the default camera"- меня, к сожалению, не устроит.
    Или же сюда можно прикрутить DirectDraw? Если да - то как?
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Конечно нужно документацию почитать, сам с OpenCV не сталкивался, но по логике если захват осуществляется с камеры, то и будет захватывать и со всего остального, в этом разнице не будет...
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    В документации я ничего не нашел...
    skysun Может тебе тупо поколдовать с VideoCapture cap( X ), где вместо X подставлять значения от 1 до .... 5 допустим.
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    2 lazybiz : Лэйз, а там целочисленный аргумент?
    Просто если нет, то наверное существует что-то вроде типа GetVideoCapture(char*) - например.... Хотя я наверное сильно с WinApi перевозился ;-) Они такое дело очень любят ;-)


    Добавлено: Надо на днях будет OpenCV этот собрать ;-) Глянуть хоть, что за зверь такой :)
     
  5. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Целочисленный. Вот конструктор:
    Код (C++):
    VideoCapture::VideoCapture(int device)
    Вот ссылка: http://opencv.willowgarage.com/documentati...e::VideoCapture

    Функции энумерации девайсов я там не нашел....
     
  6. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Ну тогда остается только перебирать
    Код (C++):
    for (int i=0; i<255; i++)
    {
    VideoCapture cap(0);
    if(cap.isOpened())
    {
    cout<< i;
    }
    }
     
  7. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    skysun , Скай, ну что, что-нибудь получилось?
     
  8. skysun

    skysun Гость

    Извиняюсь, но пока жутко не хватает времени.
    В течении недели разгребу завал, тогда попробую.
     
  9. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    DarkKnight125 Ты, по-моему, что-то пропустил в своем примере)
     
  10. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Лэйз а я если честно ХЗ ;-)) Я же до сих пор еще не поставил OpenCV, но если честно думал что и так будет работать...
    Как я понил у нее принцип берется от *nix-систем, где dev/video[0..255] - как раз он проверяет этот момент...
     
  11. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    DarkKnight125
    Ты меня не понял)) Я про то что переменная i у тебя нигде не фигурирует, кроме как в cout << i; )))
     
  12. skysun

    skysun Гость


    У нас как в армии - "не спешите выполнять приказ, его могут и отменить".

    На досуге покапаюсь в этом OPENCV - тема то интересная!
     

Поделиться этой страницей