Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

OpenCV очень популярен, и, без сомнения, это хорошо, но если вы серьезно относитесь к С++ и похожим на 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 для линейной алгебры. Язык: С++

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

Это LGPL.

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

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

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

Например, структура PTAM (параллельное отслеживание и сопоставление) от Georg Klein использует эту библиотеку.

Ответ 3

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

Ответ 4

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

Существуют также более специализированные библиотеки для встроенного зрения машины - например, VCLib Vision Components и для конкретных задач - например, для распознавания матрицы данных libdmtx.

Ответ 5

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

Ответ 7

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

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

Ответ 8

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

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

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

  • При использовании в среде .NET(С#), matrox создает управляемые объекты, которым нужна память для освобождения вручную после использования.

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

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

Ответ 10

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

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

Ответ 11

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

Ответ 12

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

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

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

Ответ 13

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

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

Ответ 14

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