Tôi có một số vấn đề với opencv Flann :: Index -Làm thế nào để sử dụng opencv flann :: Index?
tôi là tạo ra chỉ số
Mat samples = Mat::zeros(vfv_net_quie.size(),24,CV_32F);
for (int i =0; i < vfv_net_quie.size();i++)
{
for (int j = 0;j<24;j++)
{
samples.at<float>(i,j)=(float)vfv_net_quie[i].vfv[j];
}
}
cv::flann::Index flann_index(
samples,
cv::flann::KDTreeIndexParams(4),
cvflann::FLANN_DIST_EUCLIDEAN
);
flann_index.save("c:\\index.fln");
Một fter rằng tôi tryin để tải nó và tìm neiborhoods gần
cv::flann::Index flann_index(Mat(),
cv::flann::SavedIndexParams("c:\\index.fln"),
cvflann::FLANN_DIST_EUCLIDEAN
);
cv::Mat resps(vfv_reg_quie.size(), K, CV_32F);
cv::Mat nresps(vfv_reg_quie.size(), K, CV_32S);
cv::Mat dists(vfv_reg_quie.size(), K, CV_32F);
flann_index.knnSearch(sample,nresps,dists,K,cv::flann::SearchParams(64));
Và có vi phạm quyền truy cập trong miniflann.cpp trong dòng
((IndexType*)index)->knnSearch(_query, _indices, _dists, knn,
(const ::cvflann::SearchParams&)get_params(params));
Pl trợ giúp dễ dàng
Một điểm cần lưu ý là bạn cần cung cấp tập dữ liệu gốc thực tế, không chỉ là một Mat có kích thước phù hợp. Nó không rõ ràng trong tài liệu OpenCV, nhưng được đề cập trong Phần 3.3.4 của [tài liệu flann] (http://www.cs.ubc.ca/~mariusm/uploads/FLANN/flann_manual-1.6.pdf) – Sau
@Sau không phải là Phần 3.3.4 nói về Matlab chứ không phải C++? Bạn đã xác minh nhận xét của bạn trong OpenCV hoặc trong phiên bản C++ của flann? – t2k32316