博客
关于我
基于PCL利用kdtree计算点云点距均值
阅读量:301 次
发布时间:2019-03-01

本文共 2424 字,大约阅读时间需要 8 分钟。

C++程序运行闪退解决方法:

1.主函数中return 0;前加getchar();需要头文件<iostream>

2.主函数return 0;前加system("pause");

其中代码中在main()函数中添加return true前加了getchar();

注意:代码中提示无法找到源文件pch.h,可以将其注释掉,对代码运行不产生影响!

代码如下:

// PointCloudsDis.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。////#include "pch.h"#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;double computerCloudResolution(const pcl::PointCloud
::ConstPtr cloud) { double res = 0.0; int n_points = 0; int nres; std::vector
indices(2); std::vector
sqr_distances(2); pcl::search::KdTree
tree; tree.setInputCloud(cloud); for (size_t i = 0; i < cloud->size(); ++i) { if (!std::isfinite((*cloud)[i].x)) { continue; } nres = tree.nearestKSearch(i, 2, indices, sqr_distances); if (nres == 2) { res += sqrt(sqr_distances[1]); ++n_points; } } if (n_points != 0) { res /= n_points; } return res; }int main(){ ifstream data; data.open("knee_piece.TXT", ios::in); int rows = -1; char buf[200]; while (!data.eof()) { data.getline(buf, sizeof(buf)); rows++; } data.clear(); data.seekg(0, ios::beg); //pcl::PointCloud
cloud; pcl::PointCloud
::Ptr cloud(new pcl::PointCloud
); cloud->width = rows; cloud->height = 1; cloud->is_dense = false; cloud->resize(cloud->width*cloud->height); for (int i = 0; i < rows; i++) { double num[3]; data >> num[0]; data >> num[1]; data >> num[2]; cloud->points[i].x = num[0]; cloud->points[i].y = num[1]; cloud->points[i].z = num[2]; } double res = computerCloudResolution(cloud); cout << "distance=" << res << endl << "rows=" << rows; getchar(); //防止窗口闪退 return true;}

温馨提示:

积分下载名字叫“基于PCL的点云平均间距计算”,其实真没什么意思,就是以下这段代码,其实和上文中的一样的,况且代码中仅有计算点云间距的代码!下载链接:

不要冤枉浪费积分!

#include 
float means_re(pcl::PointCloud
::Ptr cloud){ float res = 0.0; int n_points = 0; int nres; std::vector
indices(2); std::vector
sqr_distances(2); pcl::KdTreeFLANN
tree; tree.setInputCloud(cloud); for (size_t i = 0; i < cloud->size(); ++i) { if (!pcl_isfinite(cloud->points[i].x)) { continue; } //Considering the second neighbor since the first is the point itself. nres = tree.nearestKSearch(i, 2, indices, sqr_distances); if (nres == 2) { res += sqrt(sqr_distances[1]); ++n_points; } } if (n_points != 0) { res /= n_points; } //std::cout <<"平均距离:"<
<

 参考博文:

1、

2、

 

转载地址:http://ogdo.baihongyu.com/

你可能感兴趣的文章
wargame narnia writeup
查看>>
MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)
查看>>
Mysql进阶索引篇03——2个新特性,11+7条设计原则教你创建索引
查看>>
Mysql连接时报时区错误
查看>>
MySQL连环炮,你扛得住嘛?
查看>>
mysql逗号分隔的字符串如何搜索
查看>>
MySQL通用优化手册
查看>>
MYSQL遇到Deadlock found when trying to get lock,解决方案
查看>>
MYSQL遇到Deadlock found when trying to get lock,解决方案
查看>>
mysql部署错误
查看>>
MySQL配置信息解读(my.cnf)
查看>>
Mysql配置文件my.ini详解
查看>>
MySQL配置文件深度解析:10个关键参数及优化技巧---强烈要求的福利来咯。
查看>>
Mysql配置表名忽略大小写(SpringBoot连接表时提示不存在,实际是存在的)
查看>>
mysql配置读写分离并在若依框架使用读写分离
查看>>
MySQL里为什么会建议不要使用SELECT *?
查看>>
MySQL里的那些日志们
查看>>
MySQL锁
查看>>
MySQL锁与脏读、不可重复读、幻读详解
查看>>
MySQL锁机制
查看>>