2011-11-14 10 views
3

私はいくつかの画像マッチングのためにopenCVを使用するiphoneプロジェクトに取り組んでいます。当初はcvMatchTemplate()を使用していましたが、出力は期待したものではありません。私は今FLANNを使ってSURF検出器を実装しようとしています。SurfDescriptorExtractor/featureDetector - IOSのOpenCv

私は、ポートに客観的Cに次の.cppコードを試してみました

//-- Step 2: Calculate descriptors (feature vectors) 
    SurfDescriptorExtractor extractor; 

    Mat descriptors_1, descriptors_2; 

    extractor.compute(img_1, keypoints_1, descriptors_1); 
    extractor.compute(img_2, keypoints_2, descriptors_2); 

    //-- Step 3: Matching descriptor vectors using FLANN matcher 
    FlannBasedMatcher matcher; 
    std::vector<DMatch> matches; 
    matcher.match(descriptors_1, descriptors_2, matches); 

しかし、それは私がすべての必要なライブラリを持っているとヘッダファイルが含まれていても、コンパイルされませんでした。オートコンプリートまた、検出器

#include "opencv2/features2d/features2d.hpp" 

中に存在する任意の検出器のためのオプションを与えていないが

class CV_EXPORTS FeatureDetector 
{ 
... 
} 
としてヘッダ・ファイルに定義されて私はここで間違って何をしているのですか?検出器クラス(抽象基底クラス)でメソッドを呼び出す方法の入力?

答えて

1

私は特にiPhoneでopenCVを使用していませんでしたので、私は機能検出器/ディスクリプタ/マッチャーを使用したときに、次の構文を使用しました。あなたが書いた...):

cv::Ptr<cv::DescriptorExtractor> extractor; 
extractor = cv::DescriptorExtractor::create("SURF"); 

cv::Ptr<cv::DescriptorMatcher> matcher; 
matcher = cv::DescriptorMatcher::create("FlannBased"); 

このスタイルはあなたのために機能しますか?

+0

私は上記のコードを目的Cに移植しようとしていたことに気付きました。私はそれを経験していないので、あなたを助けません。ごめんなさい! – Chris