Ich habe Koordinaten von einem Pixel meines Bildes (zum Beispiel int i,j;
), wie kann ich sie in einen Vektor wie den folgenden schreiben?Wie schreibe ich Koordinaten im Keypoint?
std::vector<KeyPoint> keypoint_object;
Ich habe Koordinaten von einem Pixel meines Bildes (zum Beispiel int i,j;
), wie kann ich sie in einen Vektor wie den folgenden schreiben?Wie schreibe ich Koordinaten im Keypoint?
std::vector<KeyPoint> keypoint_object;
Aus der documentation, sehe ich, es gibt einen Konstruktor für KeyPoint, der das Einfügen Ihrer Indizes ermöglicht. Es erfordert jedoch eine zusätzliche Parametergröße, und ich weiß nicht, was Sie brauchen.
Allerdings wäre die allgemeine Idee sein:
keypoint_object.push_back(KeyPoint(i,j,0));
Hier i
und j
implizit gegossen float
(Ich gehe davon aus, dass das, was Sie benötigen) und das dritte Argument ist 0
(wie es vorgeschrieben ist) - Sie wollen hier wahrscheinlich ein vernünftigeres Argument.
Sie können eine Klasse tun:
class Coordinate{
public:
int x;
int y;
}
...
vector <Coordinate> name;
Coordinate coordinate;
coordinate.x = 1~
coordinate.y = 5~
name.push_back(coordinate);
Das ist das, was suchen Sie? Ich hoffe, dies wird dir helfen!
danke, das ist was ich brauche – fen1ksss
eine andere Frage, wie ich sehen kann: KeyPoint (float x, float y, float _größe, float _angle = -1, float _response = 0, int _octave = 0, int _class_id = -1); das bedeutet, dass 3d Argument "Größe" sein sollte, welche Größe? Ursache "0" -Parametr funktioniert nicht. – fen1ksss
@ fen1ksss: Sie sollten das wahrscheinlich als eine separate Frage veröffentlichen. Ich kann es nicht beantworten, weil ich nur die * Syntax * der Schnittstelle kenne. Wahrscheinlich gibt es hier auch einige OpenCV-Experten, die auch die * Semantik * kennen. – bitmask