0

次の方法で、OpenCV の DescriptorMatchers の 1 つと共に使用できる OpenCV の記述子を作成するにはどうすればよいですか。

cv::BFMatcher matcher( cv::NORM_L2, false );
std::vector< cv::DMatch > matches;
matcher.match( descriptors_1, descriptors_2, matches );

私はすでに次の記述子クラスを持っています。DescriptorMatcher で使用できる新しいマトリックスを変換または作成するにはどうすればよいですか。できればBFMatcher。

class Descriptor
{
    public:
    float lxi, lyi; // Location of descriptor
    vector<double> feature;

    Descriptor()
    {
    }

    Descriptor(float x, float y, vector<double> const& f)
    {
         lxi = x;
         lyi = y;
         feature = f;
    }
};
4

1 に答える 1

2

同じ質問についての回答を探しているときにここにアクセスします。しかしすぐに、答えはとてもシンプルであることがわかりました。必要なのはマットを作ることだけです。

たとえば、以下は SIFT-LIKE 記述子です。

cv::Mat descriptors_1(nQueries, dimemsion, CV_32F,(void*)pQueries);
cv::Mat descriptors_2(m_nDataSets, dimemsion, CV_32F,(void*)m_pData);

cv::FlannBasedMatcher matcher;
std::vector< cv::DMatch > matches;
matcher.match( descriptors_1, descriptors_2, matches );
于 2015-07-22T03:00:52.957 に答える