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

Использовать обертки .Net OpenCV?

Итак, у нас есть этот курс обработки изображений в университете, и мы будем широко использовать OpenCV. Проблема в том, что OpenCV использует С++, но я более свободно владею С#, чем С++. Я знаю, что есть оболочки для OpenCV (OpenCVDotNet, SharperCV, EmguCV,...) Но я не знаю, что выбрать.

Мои вопросы:

  • Какой из них обертывает большинство/всех функций OpenCV?
  • Их даже стоит использовать? (Может не обновляться часто, не хватает функциональности или скорости,...)
  • Или мне лучше очистить навыки С++?

Примечание: Я знаю, что мой вопрос - это возможный дубликат этого, но он старый (с 2008 года), и все может измениться.

4b9b3361

Ответ 1

Я не использовал EmguCV, но я использовал OpenCV некоторое время.

От веб-сайта SharperCV:
Оболочка Emgu CV.Net является нашей текущей рекомендацией, если вы хотите использовать OpenCV.

И, OpenCVDotNet больше похож на академическую песочницу, поэтому, если бы это был я, я бы использовал EmguCV для любых моих исследовательских проектов, в которых участвовал С#. Главным образом потому, что он активно поддерживается, и сегодня он имеет большинство возможностей доступных оберток.

Ответ 2

Я пробовал EmguCV. Диапазон функциональных возможностей, которые он поддерживает, хорош. Но если ваш проект - это то, в чем скорость является проблемой, тогда лучше было бы улучшить свои навыки на С++.

Я не знаю много о других упаковщиках. Однажды я был на одном месте. Я работал в emgucv во время моих академических кругов и должен был перейти на С++ в своей профессии.

Поверьте мне, вы не найдете слишком трудным переехать на С++.

Ответ 3

В качестве обновления я могу подтвердить ранее предоставленные ответы.

Я использовал как OpenCV с С++, так и EMGU Wrapper для исследований и работы, и я согласен частично с большинством людей.

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

Многие функции не будут предоставлять все первоначально запланированные функции, которые вы найдете в OpenCV 3.0, например. FindNonZero() не работает точно так же, как функция, которая обертывается, и SetValue() затрудняет отладку ошибок времени выполнения.

С другой стороны, OpenCV обеспечивает отличную поддержку по сравнению с любым другим Wrapper, который вы можете найти в Интернете, и вы будете работать с самыми современными библиотеками. OpenCV 3.1 - отличная версия, и я не обнаружил никаких проблем с ее запуском на Xcode или Visual Studio.

Поэтому я рекомендую всем, кто хочет погрузиться в компьютерное зрение и обработку изображений, чтобы перейти прямо к OpenCV С++. Если вы просто хотите работать над менее сложными проблемами, вы можете выбрать EMGU (я не могу рекомендовать других, поскольку я не знаком).