Матлаб против Aforge против OpenCV - PullRequest
13 голосов
/ 17 октября 2010

Я собираюсь начать проект по обработке визуальных изображений, и у меня не было опыта работы с Matlab, Aforge, OpenCV, и мне было интересно, имел ли кто-нибудь опыт работы с этими различными программными пакетами.

Мне также было интересно, какой из трех пакетов был наиболее эффективным, я полагаю, OpenCV, но есть ли у кого-нибудь опыт?

Спасибо

Джейми.

Ответы [ 4 ]

13 голосов
/ 17 октября 2010

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

С другой стороны, MATLAB по крайней мере на порядок медленнее, чем скомпилированный код openCV для многих задач.Это особенно верно, если вы используете библиотеки примитивов производительности Intel.

Если вы знаете, как кодировать в MATLAB, я бы предложил написать и отладить ваши алгоритмы на этом языке, а затем перенести их на c / c ++ с openCV для скорости.Если есть только пара простых функций, которые нужно ускорить, вы можете вызывать код c из MATLAB, но трудно заставить его работать правильно с первых нескольких попыток, поэтому вам, вероятно, лучше просто переписать свойзаконченный код полностью на c / c ++

2 голосов
/ 31 марта 2013

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

1-matlab в основном используется при моделировании проектов, а не проекта End-prototype; мой номер: 30;

2-aforge (как я использовал во многих проектах), если вам не нужен круговой процесс, такой как захват изображения, или распознавание чего-либо на изображениях, или ... вы найдете это очень хорошим, потому что это легко использовать, но полезно для отдельных процессов; мой номер: 50

3-opencv очень хорош в скорости и полезен для круговых процессов, например, вы можете захватывать изображения с веб-камеры и мгновенно создавать карикатуры без каких-либо задержек, но их не так просто использовать как кузницу. В любом случае мне это нравится, потому что его скорость и МНОГИЕ функции дают нам практически все, что нам нужно в программировании; мой номер: 80

Dr.Taha - Tahasoft.net

2 голосов
/ 26 октября 2010

Я работал в прошлом году в двух похожих проектах с автомобилями на трассе. Afaik, Matlab позволяет обрабатывать только один кадр изображения за раз (наверняка вы могли бы разработать алгоритм для вычисления потока), но с помощью Simulink вы можете обрабатывать поток напрямую.

С другой стороны, я обнаружил, что AForge намного удобнее и проще в использовании, поскольку вы можете легко настроить параметры обработки с помощью графического интерфейса (не так быстро / просто), как в Matlab / simulink.

Я бы пошел на Aforge.Net. Это также достаточно быстро, если вы беспокоитесь о скорости обработки. (с использованием 640x480)

2 голосов
/ 17 октября 2010

Во-первых, пожалуйста, уточните о потребностях вашего проекта. Он оказывает наибольшее влияние на выбор, в дополнение к другим факторам - вашим общим знаниям в области программирования (если вы не имели дело с точечной сетью, а просто с C ++, AForge, например, не является хорошим выбором).

Вообще,

Как AForge, так и OpenCV имеют встроенный интерфейс для .Net, а OpenCV также с C ++, python и многим другим. Matlab может быть более эффективным, но если у вас нет опыта работы с ним - вы должны также изучить его синтаксис. Примите это во внимание.

Возможно, Matlab обладает самым большим набором функций, но он сложнее, чем другие проекты. Сами OpenCV и AForge имеют некоторые различия - см. Их описание в этом StackOverflow вопрос / ответы .

...