Touchless Vision C # оболочка для веб-камеры, не может работать без установленного VS - PullRequest
0 голосов
/ 15 февраля 2012

Так что я искал хороший способ использовать веб-камеру из приложения C #.Я попытался ap / invoke dll, который оказался необъяснимым и невоспроизводимо глючным.После того, как я поработал с несколькими другими, которые либо не подходили, либо были крайне архаичными, я обратился к этому:

http://jakemdrew.wordpress.com/2012/01/10/controlling-your-web-camera-using-c/#comment-15

Это код Touchless Vision с оболочкой C #, обновленной для работыв VS 2010. Работает чудесно ... до тех пор, пока VS установлен на машине.Загрузите и запустите этот выпуск на основе того, что не имеет, и он выдаст ошибку, утверждая, что не может найти WebCamLib.dll или одну из его зависимостей.Самое интересное, что я уже интегрировал это в проект.Это прекрасно работает, но я хотел бы иметь возможность распространять это без дополнительных установщиков или требующих установки VS 2010 на все.Что здесь дает?

Ответы [ 2 ]

0 голосов
/ 15 июля 2015

Ну, прошло некоторое время после вопроса, но просто ради решения я скажу так:

Предположим, что у вас есть ссылки на dll и файлы, где они должны быть единственными, что нужно сделать, это проверить зависимости dll, в этом случае программист dll-приложений touchless и webcamlib не очень заботился о «управлении версиями», поэтому найдите перераспределение c ++ vs2012 для x64 и x86 и установите их, затем запустите приложение и продолжайте работу над проектом.

0 голосов
/ 15 февраля 2012

Я использую библиотеки Aforge.net ( Aforge.net ) без проблем на нескольких компьютерах, даже без установленной VS.

Но вы уверены, что WebCamLib.dll копируется в каталог приложения?Aforge.Net также необходимо скопировать некоторые dll-файлы на компьютеры, но если вы установили для свойства Copy Local значение true, оно должно находиться в каталоге Debug / Release, а также в каталоге, когда вы выпускаете приложение с помощью Publish.

Пример:

  1. Добавьте Aforge.Controls.dll к элементам панели инструментов

  2. В конструкторе поместите элемент управления VideoSourcePlayer в вашу форму

  3. Добавить private FilterInfoCollection videoDevices; в классе формы

  4. Добавить в инициализатор формы (или в функцию, для которой вы хотите запустить камеру)

videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

    foreach (FilterInfo fi in videoDevices)
    {
      this.videoSourcePlayer1.VideoSource = new VideoCaptureDevice(MonikerString);
      this.videoSourcePlayer1.Start();
      break;
    }

Теперь вы должны получать изображение с веб-камеры в элементе управления VideoSourcePlayer.Вы можете использовать событие NewFrame элемента управления VideoSourcePlayer, чтобы получить доступ к каждому кадру, который отправляет камера, и сохранить или изменить изображение.

...