2011-07-19 9 views
4

私は迅速なOpenCV質問をしました。キーポイントのベクトルをとり、それをCvSeqに変換することは可能ですか?キーポイントのベクトルをCvSeqに変換する

ありがとうございます。これらの関数で、あなたがやりたいことができ、あなたがそれを望むことができ、なぜ私にはわからないが、それは可能なはず

+0

私はSIFTdescriptors(ベクトル形式で取得)をflannFindPairs(CvSeq *を要求する)に変換するためにもそれを行う必要がありました。ありがとうございました –

答えて

2

私は++次は、CおよびCの組み合わせであることを、追加する必要があります(中OpenCVの同様)

CreateSeq CvSeq * cvCreateSeq(INT seqFlags、INT headerSize、INT ELEMSIZE、CvMemStorage *ストレージ)

SeqPush のchar * cvSeqPush(CvSeq *配列、ボイド*素子= NULL)

ここ

はコードで、私はまだそれを試していませんが、...それが動作するかどう、私はちょうどそれを試しを与え、エラーがある場合は私に知らせてください

vector<KeyPoint> myKeypointVector; //Your KeyPoint vector 
// Do whatever you want with your vector 

CvMemStorage* storage = cvCreateMemStorage(0) 
// By default the flag 0 is 64K 
// but myKeypointVector.size()*(sizeof(KeyPoint)+sizeof(CvSeq)) should work 
// it may be more efficient but be careful there may have seg fault 
// (not sure about the size 

CvSeq* myKeypointSeq = cvCreateSeq(0,sizeof(CvSeq),sizeof(KeyPoint),storage); 
// Create the seq at the location storage 

for (size_t i=0; myKeypointVector.size(); i++) { 
    int* added = (int*)cvSeqPush(myKeypointSeq,&(myKeypointVector[i])); 
    // Should add the KeyPoint in the Seq 
} 

cvClearMemStorage(storage); 
cvReleaseMemStorage(&storage); 

ジュリアン、

+0

助けをありがとう。私はこのスニペットからキーポイントとマトリックス情報を追加することができました。 – Seb

関連する問題