it-swarm-ru.tech

Какова лучшая библиотека для компьютерного зрения в C/C++?

Какие библиотеки мне нужно выбрать при работе с Computer Vision в C/C++?

Я понимаю, что у Google много хороших результатов, но, возможно, есть отличные библиотеки, которые он пропустил.

24
eMilk

Мы используем OpenCV , где я работаю.

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

36
scubabbl

OpenCV очень популярен, и, без сомнения, это хорошо, но Если вы серьезно относитесь к C++ и, как к STL-подобным контейнерам, , Которые также очень быстры, тогда стоит подумать:

libCVD 

http://savannah.nongnu.org/projects/libcvd

Домашняя страница проекта http://www.edwardrosten.com/cvd/index.html

git: http://git.savannah.gnu.org/cgit/libcvd.git

Cambridge Video Dynamics - библиотека для изображений, захвата видео, отображения, компьютерного зрения и многого другого. Хорошо интегрируется с TooN для линейного каркаса алгебры. Язык: C++

Он активно развивается, имеет много полезных функций и алгоритмов, и, как правило, эти ребята заставляют работать очень быстро.

Это LGPL.

Можно скомпилировать его на Win, Linux и MacOS X.

Есть также намерение предоставить порт для Python с этим, чтобы позволить прототипировать алгоритмы Computer Vision с Python и SciPy очень быстро (я не уверен, на каком этапе это сейчас, но на конференции Python была статья об этом .)

Если вы пытаетесь что-то сделать в режиме реального времени, вам следует серьезно подумать о libCVD.

Например, каркас PTAM (Parallel Tracking And Mapping) Георга Кляйна использует эту библиотеку.

11
Denis C

OpenCV довольно зрелый и охватывает большинство областей компьютерного зрения.

6
Tuppa

Для промышленного машинного зрения возможны следующие варианты:

Есть также более специализированные библиотеки для встроенного машинного зрения - например, VCLib Компонентов Vision и для конкретных задач - например, для распознавания матрицы данных есть libdmtx .

4
Michal Czardybon

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

3
scubabbl

Возможно, это подразумевалось, но в первоначальном вопросе не указывалось, что библиотеки должны быть FOSS. Две ведущие коммерческие библиотеки:

Оба поддерживают C++ и предлагают бесплатные 30-дневные пробные версии.

3
hortman

Intel Performance Primitives довольно популярны в области компьютерного зрения.

3
geschema

У меня плохой опыт работы с Matrox Imaging Library. Не рекомендую, потому что:

  1. Не объектно-ориентированный, усложняет поддержку и Устраняет неисправности/отлаживает коды.

  2. Плохая документация/справочное руководство, объяснения... Неясны/неполны и отсутствуют примеры кодирования. Например, микширование Использование десяти различных функций в одном коротком примере кода.

  3. Если используется в среде .NET (C #), Matrox создает управляемые объекты, в которых требуется память для освобождения вручную после использования.

  4. Pricey. Помимо лицензии разработчика, необходимо купить лицензии времени выполнения для Всех своих клиентов.

  5. Неверный формат лицензии - используйте ключ USB. Если вы потеряли ключ, вы Потеряли свою лицензию.

2
BillyGater50B

Если бы я сравнил OpenCV с openFrameworks - как бы это получилось? Что лучше> при чем и так далее?

как я уже говорил выше, OF использует opencv (предоставляя оболочку). Они не разные. Мы стараемся обеспечить простое взаимодействие. 

1
zach

Многие люди рекомендуют OpenCV, что довольно приятно (я пробовал оболочки для Python, что нормально для быстрого создания прототипов). Возможно, вы также захотите проверить gpuCV , который использует преимущества массивного параллелизма в графических процессорах для компьютерного зрения. Его API очень похож на тот, который есть у OpenCV (в основном совместимый) и скрывает все программирование на GPU от пользователя/разработчика.

1
hannson

openframeworks использует opencv и предоставляет оболочку для него, 

например, этот код - классы, которые помогают вам легко использовать opencv:

http://svn.openframeworks.cc/browser/listing.php?repname=addons&path=%2FofxOpenCv%2Ftrunk%2FofxOpenCv%2Fsrc%2F#_ofxOpenCv_trunk_ofxOpenCv_src_

они не разные библиотеки.

1
zach

Хотя OpenCV, вероятно, является наиболее широко используемым, стоит обратить внимание на пару других:

http://cimg.sourceforge.net/ очень похожая на STL библиотека с высокими шаблонами. Он содержится в одном заголовке, а дизайн с возвратом по ссылке означает, что вы можете объединить несколько операций в один оператор. При поддержке INRIA (Французская национальная исследовательская лаборатория)

http://vxl.sourceforge.net/ очень похож на OpenCV, но имеет более C++ дизайн. Гораздо больше похоже на новую версию OpenCV2.0 c ++.

1
Martin Beckett

Если вы используете OpenCV, см. Также http://camellia.sourceforge.net/ (реализовано несколько функций IPP).

0
Cfr

OpenCV, пожалуй, самый известный и чрезвычайно зрелый. Но в последнее время произошел сдвиг в пользу систем на основе CUDA из-за повышения производительности, http://www.nvidia.com/object/cuda_home.html#

Также для более безопасных языков, таких как C #, платформа Aforge .NET довольно хороша, 

0
Egon