gpt4 book ai didi

c++ - OpenCV Flann - 断言失败

转载 作者:太空宇宙 更新时间:2023-11-03 22:29:44 27 4
gpt4 key购买 nike

我一直在尝试设置一个基本的 3D 点 flann knnsearch,但到目前为止还没有成功地让它工作。我尝试了很多不同的东西,但都返回了错误。有一段时间我遇到了 cv::flann::Index kdtree(cv::Mat(cvPointCloud).reshape(1), indexParams); 的问题提示类型不匹配。但似乎我不再看到那个错误,但这个错误已经取代了它,我不知道该怎么办。

OpenCV Error: Assertion failed (mtype == type0 || (CV_MAT_CN(mtype) == CV_MAT_CN
(type0) && ((1 << type0) & fixedDepthMask) != 0)) in cv::_OutputArray::create, f
ile E:\opencv\source\modules\core\src\matrix.cpp, line 2280

我的代码:

#include <opencv2/core/core.hpp>
#include <opencv2/flann/flann.hpp>
#include <iostream>
#include <stdio.h>
#include <random>


#define POINTS_IN_CLOUD 15
#define NUM_NEAREST_NEIGHBORS 2
#define NUM_SEARCHES 64



int main() {
std::vector<cv::Point3f> cvPointCloud;

// Build the cvPointCloud
for (int i = 0; i < POINTS_IN_CLOUD; i++) {
int x = rand() % 100;
int y = rand() % 100;
int z = rand() % 100;
cvPointCloud.push_back(cv::Point3f(x, y, z));
}

// Loop through and print out the points in the cloud
for (std::vector<cv::Point3f>::iterator it = cvPointCloud.begin(); it != cvPointCloud.end(); ++it) {
std::cout << *it << "\t";
}




// KdTree with 4 random trees
cv::flann::KDTreeIndexParams indexParams(4);
cv::flann::Index kdtree(cv::Mat(cvPointCloud).reshape(1), indexParams);


// Point to find nearest neighbors
cv::Point3f pt = cv::Point3f(5, 5, 5);

// Generate the search query
std::vector<float> query;
query.push_back(pt.x);
query.push_back(pt.y);
query.push_back(pt.z);


std::vector<int> indices(NUM_NEAREST_NEIGHBORS);
std::vector<int> dists(NUM_NEAREST_NEIGHBORS);
kdtree.knnSearch(query, indices, dists, NUM_NEAREST_NEIGHBORS, cv::flann::SearchParams(NUM_SEARCHES));

std::cout << indices[0];
std::cout << dists[0];

return 0;
}

如果有人能指出正确的方向,我将不胜感激!

最佳答案

根据 Opencv documentation ,你的变量 'dists' 需要是一个

std::vector<float> dists(NUM_NEAREST_NEIGHBORS);

不是

std::vector<int> dists(NUM_NEAREST_NEIGHBORS);

在您的代码中声明。

关于c++ - OpenCV Flann - 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com