2010-10-17 18 views
13

Ich bin im Begriff, ein Projekt in visueller Bildverarbeitung zu beginnen und hatte keine Erfahrung mit Matlab, Aforge, OpenCV und fragte mich, ob jemand irgendwelche Erfahrungen mit diesen verschiedenen Softwarepaketen hatte.Matlab vs Aforge vs OpenCV

Ich habe mich auch gefragt, welche der drei Pakete am effizientesten waren Ich nehme OpenCV an, aber hat jemand Erfahrung?

Dank

Jamie.

Antwort

13

Die Frage, die Sie sich stellen müssen, ist, was wichtiger ist - Ihre Zeit oder die des Computers. Wenn Ihre Aufgabe wirklich einfach ist, können Sie sie möglicherweise in MATLAB codieren und sofort ausführen lassen. MATLAB ist bei weitem die einfachste Entwicklung - eine Skriptsprache mit integriertem Speichermanagement, einer großen Anzahl bereitgestellter Funktionen und einer großartigen Schnittstelle zum Anzeigen und Manipulieren von Daten während des Debuggens.

Auf der anderen Seite ist MATLAB für viele Aufgaben mindestens eine Größenordnung langsamer als kompilierter openCV-Code. Dies gilt insbesondere, wenn Sie die Bibliotheken für Intel-Leistungsgrundelemente verwenden.

Wenn Sie wissen, wie man in MATLAB programmiert, würde ich vorschlagen, Ihre Algorithmen in dieser Sprache zu schreiben und zu debuggen, dann portieren Sie sie in c/C++ mit openCV für Geschwindigkeit. Wenn es nur ein paar einfache Funktionen gibt, die Sie beschleunigen müssen, können Sie den c-Code von MATLAB aufrufen, aber es ist schwer, das bei den ersten paar Versuchen richtig zu machen, also sind Sie wahrscheinlich besser dran, wenn Sie einfach Ihre schreiben fertigen Code komplett in C/C++

+0

Hey Marc Ich bin komplett neu bei openCV und Matlab und Bildbearbeitung als Ganzes. Ich muss etwas auf Augapfel-Tracking mit Webcam tun. Was empfehlen Sie? Sie haben zu wenig Dokumentation für openCV? – Sohaib

2

Bitte erläutern Sie zuerst die Anforderungen Ihres Projekts. Es hat den größten Einfluss auf die Wahl, neben anderen Faktoren - Ihrem allgemeinen Programmierwissen (Wenn Sie sich nicht mit dot net, sondern nur mit C++ beschäftigt haben, ist AForge zum Beispiel keine gute Wahl).

Allgemeinen

Sowohl AForge OpenCV und hat eine eingebaute Schnittstelle zu .NET und OpenCV auch mit C++, Python, und vieles mehr. Matlab könnte effizienter sein, aber wenn Sie keine Erfahrung damit haben - sollten Sie auch seine Syntax lernen. Berücksichtige es.

Matlab hat wahrscheinlich die größte Vielfalt an Funktionen, aber es ist komplizierter als die anderen Projekte. OpenCV und AForge selbst haben einige Unterschiede - siehe sie in diesem StackOverflow beschrieben question/ answers.

+0

Das Projekt eine Kamera auf der Vorderseite eines Bootes einen Kanal reisen nach unten und Nachweis anderer Boote und Objekte beinhaltet Montage. Offensichtlich geht es bei dem ersten Problem um die Aufbereitung von Wasser. – Jamie

2

Ich arbeitete im vergangenen Jahr in zwei ähnlichen Projekten mit Autos auf der Autobahn. Afaik, Matlab ermöglicht es, nur einen Bildrahmen gleichzeitig zu verarbeiten (sicherlich könnte man einen Algorithmus zur Berechnung eines Streams entwickeln), aber mit Simulink können Sie den Stream direkt verarbeiten.

Auf der anderen Seite fand ich AForge viel freundlicher und einfacher zu bedienen, da Sie einfach die Verarbeitungsparameter von einer GUI (nicht so schnell/einfach) in Matlab/Simulink tun können.

Ich würde für Aforge.Net gehen. Es ist auch schnell genug, wenn Sie sich Sorgen über die Verarbeitungsgeschwindigkeit machen. (unter Verwendung von 640x480)

2

Wenn Sie über die Verwendung eines dieser in Frage stellen.Netz, leicht können Sie Informationen davon erhalten:

1-Matlab meist in der Simulation von Projekten nicht das Ende-Prototyp-Projekt verwendet; Meine Nummer: 30;

2-aforge (wie ich in vielen Projekten verwendet), wenn Sie nicht den kreisförmigen Prozess wie das Erfassen von Bildern oder die Erkennung von etwas in Bildern oder ... Sie finden es sehr gut, denn es ist einfach zu bedienen, aber nützlich für einzelne Prozesse; Meine Nummer: 50

3-opencv sehr gut in der Geschwindigkeit und nützlich für zirkuläre Prozesse, zum Beispiel können Sie Bilder von einer Webcam erfassen und Instantly ohne Verzögerung zu cartoonize, aber nicht einfach als Aforge zu verwenden. Ich mag es sowieso wegen seiner Geschwindigkeit und VIELEN Funktionen es gibt uns meistens alles, was wir in der Programmierung brauchen; meine Nummer: 80

Dr.Taha - Tahasoft.net