Ich möchte die opencv cv::Mat
Funktion push_back
verwenden, um neue Zeilen zu einer Matrix hinzuzufügen, aber ich möchte die Größe der Matrix vorschreiben, so dass die Daten nicht ständig neu zugeordnet werden müssen. Die cv::mat::reserve
Funktion hat eine Anzahl von Zeilen Parameter, aber das bedeutet, dass Sie die Anzahl der Spalten (und Datengröße zuerst) angeben müssen. Also würde der Code, den ich unterstelle, mir am Anfang eine leere Zeile geben, die ich nicht möchte. Gibt es einen geeigneten Weg, dies zu tun mit reserve
und push_back
?Wie benutzt man opencv Mat reserve? mit push_back
cv::Mat M(1, size_cols, CV_32FC1);
M.reserve(size_rows);
for (int i = 0; i < size_rows; i++)
{
GetInputMatrix(A);
M.push_back(A.row(i));
}
Hinweis: Obwohl der Beispielcode es nicht zeigen, ich bin mir nicht sicher über die genaue Größe der endgültigen Matrix, aber ich kann einen Maximalwert Größe zu reservieren erhalten.
Vielen Dank, ich hoffe, dass dies tatsächlich den Raum im Voraus reserviert. Ich bin etwas skeptisch. – Geronimo