I findNonZero (img, nonZeroCoordinates) verwenden die alle Nicht-Null Punkte zu speichern in nonZeroCoordinates, die eine Mat.OpenCV: Holen Sie sich alle "Punkt" gespeichert in "Mat"
Nun möchte ich alle diese Punkte in einem Vektor für die weitere Verarbeitung speichern. Meine Frage ist „Ist das möglich, alle Punkte in Matte auf einfache Weise gespeichert zu bekommen?“
Soweit ich weiß, ich durch nonZeroCoordinates und speichern alle Punkte one-by-one laufen kann im Vektor.
Mat nonZeroCoordinates;
vector<Point> inds;
for (int i = 0; i < nonZeroCoordinates.total(); i++) {
Point pt(nonZeroCoordinates.at<Point>(i).x, nonZeroCoordinates.at<Point>(i).y);
inds.push_back(pt);
}
Wie Sie sehen können, sieht der Code ziemlich redundant aus. Ist es möglich, es einfacher zu machen?
Speichern Sie die temporäre und tun 'inds.push_back (nonZeroCoordinates.at (i));' –