Ich habe einen Vektor von 2-dimensionalen Punkten in OpenCV
%Vor% Ich möchte die Mittelwerte für x- und y-Koordinaten in points
berechnen. Etwas wie:
Das wäre in Matlab einfach. Aber ich bin mir nicht sicher, ob ich einige High-Level-OpenCV-Funktionen verwenden kann, um das gleiche zu erreichen. Irgendwelche Vorschläge?
InputArray
macht hier einen guten Job. Sie können einfach
Details:
In den neueren OpenCV-Versionen wird der Datentyp InputArray
eingeführt. Auf diese Weise kann man entweder als Vektoren an eine OpenCV-Funktion entweder Matrizen (cv :: Mat) senden. A vector<Vec3f>
wird als Float-Matrix mit drei Kanälen, einer Zeile und der Anzahl der Spalten gleich der Vektorgröße interpretiert. Da keine Daten kopiert werden, ist diese transparente Konvertierung sehr schnell.
Der Vorteil ist, dass Sie mit dem Datentyp arbeiten können, der in Ihrer App besser passt, während Sie trotzdem OpenCV-Funktionen verwenden können, um mathematische Operationen zu vereinfachen.
Da OpenCV Point_
bereits operator+
definiert, sollte dies ziemlich einfach sein. Zuerst summieren wir die Werte:
Dann teilen wir uns, um den Durchschnitt zu erhalten:
%Vor% ... oder wir könnten Point_
s operator*
:
Leider definiert Point_
, so weit ich das sehen kann, nicht operator /
, also müssen wir mit der Umkehrung multiplizieren, anstatt durch die Größe zu dividieren.