Ich kompiliere ein Programm mit dem -Wall
-Flag von gcc. Ich mache einen Vergleich (mit einem unsigned int) an Mat::cols
und Mat::rows
an einem bestimmten Punkt und erhalte eine Warnung über den Vergleich von signierten und unsignierten Ints. Obwohl es keine große Sache ist, dies wegzuwerfen, bin ich neugierig, was die Begründung für eine Mat
ist, die eine negative Größe hat.
Logischerweise kann eine Matrix nicht leerer sein als eine leere Matrix (mit 0 Zeilen und 0 Spalten). Was würde also eine Matrix mit -1 Zeilen oder -1 Spalten bedeuten?
Ich denke, weil meistens int i
als Schleifenzähler verwendet wird. Mit uint als Spalten und Zeilen werden viele Warnungen angezeigt. Auch größere Unterschiede in den Dimensionen wären etwas fehleranfälliger.
neben dem. In meinen Augen ist OpenCv kein gutes Beispiel für gutes Design. Es gibt Dutzende von Beispielen für schlechtes Klassen-Design. Auch das Design der generierten Dokumentation ist schrecklich (alle Überlastungen einer Funktion und ihrer Parameter sind zum Beispiel miteinander vermischt).
Aber es ist eine sehr umfassende und gute Bildverarbeitungsbibliothek. und das entschuldigt viel:)