2012-03-24 6 views

Antwort

1

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.

+0

danke, das ist was ich brauche – fen1ksss

+0

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

+0

@ 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

2

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!

+0

fast, aber gibt es eine Möglichkeit, genau Standard-KeyPoint-Klasse zu verwenden? Weil ich es später brauche? – fen1ksss

+0

später wird 'SurfFeatureDetector detector (400); detector.detect (img, keypoint_object); wo std :: vector keypoint_object' – fen1ksss