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

ppop21285

Пользователи
  • Количество публикаций

    11
  • Зарегистрирован

  • Посещение

  • Days Won

    3

Сообщения, опубликованные пользователем ppop21285


  1. Полностью справедливо для камер только с DirectShow/WMF драйвером. Некоторые имеют еще собственный драйвер и SDK, особенно с вариантами для Windows и Linux. Часто, такие камеры выдают полное разрешение и частоту кадров только в сжатом видео потоке ( Mjpeg/h.264) – видел китайcкую камеру 5Mp/60Hz/h.264 120Mbit поток, подключённую по USB2… Такие случаи как раз для аппаратного декодирования. В SDK Intel Quick Sync Video, Nvidia NVENC есть примеры копирования декодированного кадра в OpenCL/Cuda память.   


  2. Для аппаратного декодирования h.264/h.265/mpeg4/MJPEG можно взять библиотеки из проекта ffmpeg. Там есть реализаций кодеков с использованием SDK от  NVIDIA, AMD и INTEL, также есть варианты для мобильных устройств. В ffmpeg есть свой модуль для работы с камерами. OpenCV версий 3 и 4 можно собрать с поддержкой ffmpeg для декодирования.

    Применяя аппаратный декодер и OpenCV модули с поддержкой NVIDIA Cuda и/или OpenCL, есть возможность построить алгоритмы без копирования декодированного потока в хост память.  DirectX и OpenGL поверхности в памяти  GPU могут являться источником для  OpenCl/Cuda матриц в OpenCV не покидая GPU.

    • Like 1

  3. Возможно оригинальный проект Piotr Dobrowolski-кого  https://github.com/dobrypd/autofocus поможет вам лучше понять пример. В нем, для управления камерой  используются методы Set()/Get() объекта VideoCaptute. Например, вызов myCap.Set(CAP_PROP_AUTOFOCUS, 0) отключает встроенный авто фокус - если он присутствует.

     


  4. Под Windows  для работы с WEB камерами походит DirectShow API. Интерфейс IAMCameraControl::Set/Get позволяет управлять настройками камеры и фокусом в частности: http://msdn.microsoft.com/en-us/library/dd389148(v=VS.85).aspx С его помощью можно узнать доступно ли управление фокусом для конкретной подключенной камеры.
    С выбором камеры сложнее - нужны спецификации от производителя. Например, Logitech HD Pro Webcam C920 поддерживает ручную и автоматическую фокусировку.

     

     


  5. 6 hours ago, DL03 said:

    Спасибо! Скачал! Но у меня почему то при попытке

    
    cv::cuda::getCudaEnabledDeviceCount();

    выдает 0 (и при моей сборке также).

    В Visual Studio все подключено как обычно:

          1. Каталоги VC++
             1. Каталоги включения: "$(OPENCV_DIR)\..\..\include"
             2. Каталоги библиотек: "$(OPENCV_DIR)\lib"
          2. Компановщик
             1. Ввод
                1. Дополнительные зависимости: "opencv_world330.lib"

    Где еще может быть проблема?

    Видимо не установленны пути к opencv_world330d.dll / opencv_world330.dll , котокые находятся в ХХХ\x64\vc14\bin\ . Также надо проверть путь к Nvidia SDK. Для работы переменными окруженя в Windows порекомендую Rapid Environment Editor.


  6. День добрый, не вижу особой проблемы - уторйство работает с DirectShow драйверами и, если OpenCV(2 или 3) собранна  с поддержкой DirectShow, то проблем нет.

    Я пробовал с визуально таким же, но подписанным как CSL.  Тестовая программа graphedit замечательно выдит подобнве USB устройства. Под линукс я не пробовал.

     

×