私はopencv 2.4.4フランを使用しています。
そして私は参照します:http://docs.opencv.org/2.4.4/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html
KNNをする。
私は行列(8000 * 32)flann_mを持っています。8000 個のデータがあり、それぞれに 32 個の特徴があります。
次のようなコードを書きました。
flann::Index flann_index(flann_m, flann::LinearIndexParams());
flann_index.save("flann_index.fln");
Mat resps(ROW,K,CV_32F);
Mat nresps(ROW,K,CV_16S);
Mat dist(ROW,K,CV_32F);
flann_index.knnSearch(flann_m,nresps,dist,K,flann::SearchParams(64));
そして、nreps と dist で KNN の結果を得ることができました。nreps は N 個の近傍のインデックス、dist は距離です。
しかし、opencv flann で異なる距離アルゴリズム (ChiSquare、Euclidean など) を設定する方法がわかりません。
flann.cpp を確認したところ、set_distance() 関数が廃止されたようです。