MATLAB und OpenCV [geschlossen]

8

Ich benutze OpenCV schon eine ganze Weile und habe mich gefragt, ob der Wechsel zu MATLAB eine gute Idee wäre. Soweit ich weiß, sind sie beide identisch mit MATLAB, das auf zugrundeliegenden OpenCV-Bibliotheken basiert. OpenCV ist Open Source, was ein klarer Vorteil ist und auf mehreren Plattformen unterstützt wird.

Ich probiere Algorithmen aus, die spezifisch für die Pupillenerkennung sind, daher brauche ich wirklich präzise Ergebnisse.

Kennt jemand irgendwelche Vorteile durch Geschwindigkeit oder Verarbeitung oder integrierte Funktionen, die MATLAB verwendet?

    
nette 05.02.2014, 10:15
quelle

4 Antworten

11

Wenn Sie OpenCV bereits kennen, dann bleiben Sie bei OpenCV. Derzeit ist OpenCV die umfassendste Open-Source-Bibliothek für Computer Vision und hat eine große Benutzergemeinschaft. OpenCV hat mehr Funktionen für Computer Vision als Matlab. Viele seiner Funktionen sind auf GPU implementiert. Die Bibliothek wird kontinuierlich aktualisiert (eine aktualisierte Version wird etwa alle 3 bis 4 Monate veröffentlicht). Im Allgemeinen läuft C ++ OpenCV-Code schneller als Matlab-Code (wenn es nicht schnell genug ist, können Sie es schneller machen, indem Sie den Quellcode optimieren).

Matlab ist nützlich für Rapid Prototyping und Matlab-Code ist sehr einfach zu debuggen. Es hat eine gute Dokumentation und Unterstützung. Wie andere bereits erwähnt haben, ist Matlab nicht Open Source, seine Lizenz ist ziemlich teuer und seine Programme sind nicht portabel. Matlab ist eine interpretierte Sprache und wirkt sich negativ auf die Leistung aus. Leistung spielt eine große Rolle in der Computer-Vision, besonders wenn Sie Echtzeit-Video-Verarbeitung machen. Seine Programme können auch schnell gemacht werden, aber Sie werden sich auf High-Level-Funktionen (dh eingebaute Funktionen professionell in C geschrieben), mex-Funktionen (Ihre eigenen kompilierten C-Code) verlassen müssen, und Sie müssen lernen, wie Vectorisieren Sie Ihren Code, um eine ordentliche Geschwindigkeit zu erreichen.

    
Alexey 05.02.2014 16:28
quelle
2

Sie haben nicht erwähnt, wie Sie OpenCV verwenden, also gehe ich davon aus, dass Sie C ++ verwenden; Falls Sie Python verwenden, lesen Sie diese Seite .

>

Wenn Sie GPU zur Verarbeitung verwenden , dann würde ich vorschlagen, dass Sie bei C ++ bleiben. Natürlich, Es gibt Lasten von andere optimierungen kannst du mit deinem Code machen ..

Für MATLAB gibt es einige ziemlich grundlegende Dinge , die dies können auch gemacht werden ..

Am Ende des Tages würde ich sagen, je näher Sie der Sprache auf Maschinenebene sind, desto besser wird Ihre Leistung sein. Aber natürlich kann die Verwendung von C ein Schmerz sein, da es eine HIGH Chance gibt, nicht optimierten Code und Speicherlecks zu schreiben. Aus diesem Grund bietet C ++ den besten Kompromiss.

HTH

    
scap3y 05.02.2014 10:28
quelle
2

Deine Frage macht keinen Sinn.

OpenCV ist eine C ++ - Bibliothek zur Durchführung von Computer Vision Aufgaben. Neben C ++ gibt es Unterstützung für andere Programmiersprachen über Bindings.

MATLAB ist eine vollständige wissenschaftliche Suite, die aus einer massiven IDE mit einer eigenen Sprache besteht.

Wenn Sie möchten, dass Ihr Code in MATLAB ausgeführt wird, schreiben Sie MATLAB-Code. Aber dann müssen Sie auch eine 4GB IDE installieren und für eine ziemlich teure Lizenz bezahlen.

Meine persönliche Wahl ist es, OpenCV mit den Python-Sprachbindungen zu verwenden, da dies mir eine nette Skriptschnittstelle für Matrixoperationen gibt (wohl etwas überladener als MATLABs), während man immer noch leicht auf OpenCV-Funktionen zugreifen kann.

    
Hannes Ovrén 05.02.2014 12:33
quelle
0

Wenn Sie opencv wirklich verstehen, denken Sie definitiv nicht daran, von opencv zu matlab zu wechseln.

Sie können opencv mit Python oder cpp und sogar Java usw. auch verwenden.
Eigentlich sollten Sie opencv nicht nur für Ihre gesamte Aufgabe in Betracht ziehen.
Wie opencv gibt es auch andere Bibliotheken.
Beispiel: numpy - & gt; zur schnellen numerischen Berechnung
matplotlib - & gt; um ein Zahlenfenster etc. zu zeigen, wie Matlab.
scipy - & gt; für schnelle wissenschaftliche Berechnung.

Wenn Sie Ihre Programmiersprache + opencv + matplotlib + numpy + scipy definitiv verwenden, werden Sie sich über opencv wundern. Und machen Sie sich keine Gedanken darüber, wie Sie diese Bibliotheken miteinander vermischen können. Nennen Sie einfach ihren Namen und machen Sie Ihre eigentliche Kodierung. Das ist alles.

    
Thamizh 06.02.2014 06:23
quelle

Tags und Links