C++ OpenCV Flann-断言失败

C++ OpenCV Flann-断言失败,c++,opencv,visual-c++,flann,opencv3.0,C++,Opencv,Visual C++,Flann,Opencv3.0,我一直在尝试设置一个基本的3D点法兰knnsearch,但到目前为止还不能成功地让它工作。我试过很多不同的方法,但都有错误。有一段时间,我在cv::flann::Index kdtree(cv::Mat(cvPointCloud)方面遇到了问题抱怨类型不匹配。但我似乎不再看到那个错误,但这一个已经取代了它,我不知道该怎么办 OpenCV错误:断言失败(mtype==type0 | | |)(CV_MAT_CN(mtype)==CV_MAT_CN (type0)和((1根据,变量'dists'需要

我一直在尝试设置一个基本的3D点法兰knnsearch,但到目前为止还不能成功地让它工作。我试过很多不同的方法,但都有错误。有一段时间,我在
cv::flann::Index kdtree(cv::Mat(cvPointCloud)方面遇到了问题抱怨类型不匹配。但我似乎不再看到那个错误,但这一个已经取代了它,我不知道该怎么办

OpenCV错误:断言失败(mtype==type0 | | |)(CV_MAT_CN(mtype)==CV_MAT_CN
(type0)和((1根据,变量'dists'需要是

std::vector<float> dists(NUM_NEAREST_NEIGHBORS);
std::向量距离(NUM\u近邻);
不是

std::vector<int> dists(NUM_NEAREST_NEIGHBORS);
std::向量距离(NUM\u近邻);

正如在代码中声明的那样。

是否可以使用Point3i而不是Point3f?我所有的数据都是int,不想在它们之间混合。切换时,我收到以下错误:
OpenCV错误:不支持的格式或格式组合(type=4)在cv::flann::buildIndex\中,文件E:\opencv\source\modules\flann\src\miniflann.cpp,第315行
,其中
type=4
cv\u 32S
我认为不是。它只接受点3f的向量作为输入。将数据向量转换为点3f的向量,只需花费O(n)。
std::vector<int> dists(NUM_NEAREST_NEIGHBORS);