我使用的是opencv 2.4.4 flann。如何使用opencv flann,特別是設置距離算法?
和我指的是: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));
而且我可以得到nresps和DIST的KNN結果,與nresps的N個相鄰的索引和DIST的距離。
但我不知道如何在opencv flann中設置不同的距離算法(ChiSquare,Euclidean等)。
我檢查了flann.cpp,看起來set_distance()函數是不推薦的。