2010-10-17 6 views
13

Sto per iniziare un progetto di elaborazione di immagini visive e non ho avuto esperienze con Matlab, Aforge, OpenCV e mi chiedevo se qualcuno avesse avuto esperienze con questi diversi pacchetti software.Matlab vs Aforge vs OpenCV

Mi chiedevo anche quale dei tre pacchetti fosse più efficiente presumo OpenCV ma qualcuno ha avuto qualche esperienza?

Grazie

Jamie.

risposta

13

La domanda che devi porsi è che è più importante - il tuo tempo o il tempo del computer. Se il tuo compito è davvero semplice, potresti essere in grado di codificarlo in MATLAB e farlo funzionare subito. MATLAB è di gran lunga lo strumento più semplice per lo sviluppo: un linguaggio basato su script con gestione della memoria integrata, una vasta gamma di funzioni fornite e una grande interfaccia per la visualizzazione e la manipolazione dei dati durante il debug.

D'altra parte, MATLAB è almeno un ordine di grandezza più lento del codice openCV compilato per molte attività. Questo è particolarmente vero se si usano le librerie di primitive performance intel.

Se si sa come codificare in MATLAB, suggerirei di scrivere e debuggare gli algoritmi in quel linguaggio, quindi portarli in c/C++ con openCV per la velocità. Se ci sono solo un paio di semplici funzioni che è necessario velocizzare, puoi chiamare il codice c da MATLAB, ma è difficile farlo funzionare le prime volte che lo provi, quindi probabilmente stai meglio semplicemente riscrivendo il tuo codice finito interamente in c/C++

+0

Hey Marc Sono completamente nuovo sia per openCV che per matlab e l'elaborazione di immagini nel suo complesso. Devo fare qualcosa sul tracciamento del bulbo oculare usando la webcam. Che cosa mi consiglia? Lì non c'è abbastanza documentazione per openCV? – Sohaib

2

In primo luogo, si prega di approfondire le esigenze del progetto. Ha il maggiore impatto sulla scelta, oltre ad altri fattori: le tue conoscenze di programmazione generale (se non hai affrontato dot net ma solo con C++, AForge non è una buona scelta, ad esempio).

Generalmente,

Sia AForge e OpenCV ha un'interfaccia incorporata per NET e OpenCV anche con C++, pitone, e altro ancora. Matlab potrebbe essere più efficiente, ma se non ne hai esperienza, dovresti anche imparare la sua sintassi. Prendilo in considerazione.

Matlab ha probabilmente la più ampia varietà di funzioni, ma è più complicato rispetto agli altri progetti. OpenCV e AForge hanno alcune differenze: vederli descritti in questo StackOverflow question/ answers.

+0

Il progetto prevede il montaggio di una fotocamera sul lato anteriore di una barca che viaggiano lungo un canale e rilevare altre barche e oggetti. Ovviamente il primo problema riguarda l'elaborazione visiva dell'acqua. – Jamie

2

Ho lavorato l'anno scorso in due progetti simili con le auto in autostrada. Afaik, Matlab consente di elaborare solo una cornice alla volta (sicuramente è possibile elaborare un algoritmo per calcolare uno stream) ma utilizzando Simulink è possibile elaborare direttamente lo stream.

D'altra parte, ho trovato AForge molto più facile da usare e facile da usare poiché è possibile regolare facilmente i parametri di elaborazione da una GUI (non così veloce/facile) da eseguire in Matlab/simulink.

Vorrei andare per Aforge.Net. È anche abbastanza veloce se ti preoccupi della velocità di elaborazione. (usando 640x480)

2

Se stai chiedendo di utilizzare uno di questi in.rete, facilmente è possibile ottenere informazioni da questo:

1-MATLAB principalmente utilizzato nella simulazione di progetti, non il progetto di prototipo di fine; il mio numero: 30;

2-aforge (come ho usato in molti progetti) se non hai bisogno del processo circolare come catturare l'immagine, o il riconoscimento di qualcosa in immagini o ... lo troverai molto buono, perché è facile da usare ma utile per singoli processi; il mio numero: 50

3-opencv molto buono a velocità e utile per i processi circolari, ad esempio è possibile catturare immagini da una webcam e animarlo immediatamente senza alcun ritardo, ma non è facile da usare come forfor. Mi piace comunque causa della sua velocità e MOLTE funzioni ci danno quasi tutto ciò di cui abbiamo bisogno nella programmazione; il mio numero: 80

Dr.Taha - Tahasoft.net