点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 3127|回复: 0

邻域搜索,半径内没有点时,程序报错

[复制链接]
发表于 2017-9-25 22:34:04 | 显示全部楼层 |阅读模式
利用PCL 的KDtree进行邻域搜索的时候,当半径内没有点时,程序会报错:<vector subscript out of range>
代码如下:
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new
pcl::PointCloud<pcl::PointXYZ>);

  // Generate pointcloud data
  cloud->width = 1000;
  cloud->height = 1;
  cloud->points.resize (cloud->width * cloud->height);

  for (size_t i = 0; i < cloud->points.size (); ++i)
  {
    cloud->points.x = 1024.0f * rand () / (RAND_MAX + 1.0f);
    cloud->points.y = 1024.0f * rand () / (RAND_MAX + 1.0f);
    cloud->points.z = 1024.0f * rand () / (RAND_MAX + 1.0f);
  }

  pcl::KdTreeFLANN<pcl::PointXYZ> kdtree;

  kdtree.setInputCloud (cloud);

  pcl::PointXYZ searchPoint;

  searchPoint.x = 0;
  searchPoint.y = 0;
  searchPoint.z = 0;

// Neighbors within radius search

  std::vector<int> pointIdxRadiusSearch;
  std::vector<float> pointRadiusSquaredDistance;

  float radius = 1.0;

  if ( kdtree.radiusSearch (searchPoint, radius, pointIdxRadiusSearch,
pointRadiusSquaredDistance) > 0 )
  {
  }

请问是什么原因,该如何解决?




回复

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-4-23 14:38 , Processed in 2.584153 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表