2016-11-04 4 views
1

Wie esJavaCV - was ist der Unterschied zwischen Präfix 'cv' und nicht

opencv_imgproc.HoughLines 

und

opencv_imgproc.cvHoughLines2 

Sie unterschiedliche Datentypen verwenden. Ersterer verwendet Mat, der zweite CvArr. Warum? Und welchen würde ich verwenden?

+0

Die 'cv'-Präfixe sind die C-Schnittstellen-Versionen, so dass die Arg-Typen unterschiedlich sind, da die Nicht-Präfixe die C++ - Schnittstellenversion verwenden. Ich würde das C++ selbst benutzen. Die Typen unterscheiden sich dadurch, dass "Mat" ein C++ - Klassentyp ist, der auch einige Vorlagenmethoden enthält, die in der "c" -Sprache nicht unterstützt werden. – EdChum

+0

@Miki Was ist der Unterschied? bytedeco ist großartig, weil Sie mit einer Zeile Code beginnen: https://github.com/bytedeco/sbt-javacv –

+0

Ich habe nicht bekommen, dass Sie dies für Scala verwenden. Dies ist eine andere Geschichte, und Sie können meinen vorherigen Kommentar zurückziehen ...;) – Miki

Antwort

1

Die cv-Präfixe sind die C-Schnittstellen-Versionen, so dass die Arg-Typen unterschiedlich sind, da die nicht-Präfixe die C++ - Schnittstellenversion verwenden.

Ich würde das C++ ein persönlich verwenden. Die Typen unterscheiden sich dadurch, dass Mat ein C++ - Klassentyp ist, der auch einige Vorlagenmethoden enthält, die in der Sprache c nicht unterstützt werden.

Möglicherweise gibt es auch ein Argument, dass die C++ - Version möglicherweise besser optimiert wird, aber Sie müssten dies profilieren. Außerdem würde ich erwarten, dass die Bindungen zwischen C++ und solchen wie CUDA auch effizienter sind, auch dies müsste profiliert werden.

Verwandte Themen