Ich weiß, dass dies sehr rudimentär sein kann, aber ich bin neu bei OpenCV. Können Sie mir bitte sagen, wie ich die Größe einer Matrix in OpenCV erhalte? Ich habe gegoogelt und bin immer noch auf der Suche, aber wenn einer von Ihnen die Antwort kennt, helfen Sie mir bitte.
Größe wie in Anzahl der Zeilen und Spalten.
Und gibt es eine Möglichkeit, den Maximalwert einer 2D-Matrix direkt zu erhalten?
opencv
opencv-mat
Lakshmi Narayanan
quelle
quelle
Beachten Sie, dass es neben Zeilen und Spalten eine Reihe von Kanälen und Typen gibt. Wenn klar ist, um welchen Typ es sich handelt, können die Kanäle wie in CV_8UC3 als zusätzliche Dimension fungieren, sodass Sie eine Matrix als adressieren würden
Die Größe in Bezug auf Elemente des Elementartyps ist also M.rows * M.cols * M.cn.
Um das maximale Element zu finden, kann man verwenden
quelle
Für 2D-Matrix:
mat.rows - Anzahl der Zeilen in einem 2D-Array.
mat.cols - Anzahl der Spalten in einem 2D-Array.
Oder: C ++: Size Mat :: size () const
Die Methode gibt eine Matrixgröße zurück: Größe (Spalten, Zeilen). Wenn die Matrix mehr als zweidimensional ist, beträgt die zurückgegebene Größe (-1, -1).
Für mehrdimensionale Matrix müssen Sie verwenden
Beachten Sie, hier 2 für die z-Achse, 3 für die y-Achse, 4 für die x-Achse. Mit x, y, z ist die Reihenfolge der Dimensionen gemeint. x Index ändert sich am schnellsten.
quelle
Mat::size()
Mitgliedsmethode, sondern eineMat::size
Mitgliedsvariable vom TypMatSize
. Letzteres überlastet den KlammeroperatorMatSize::operator()
, um einSize
Objekt zurückzugebenEin vollständiges C ++ - Codebeispiel kann für Anfänger hilfreich sein
quelle
Wenn Sie die Python-Wrapper verwenden, dann (vorausgesetzt, Ihr Matrixname ist mat ):
mat.shape gibt Ihnen ein Array vom Typ [Höhe, Breite, Kanäle]
mat.size gibt Ihnen die Größe des Arrays an
Beispielcode:
quelle