博客
关于我
基于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/

你可能感兴趣的文章
MYSQL:int类型升级到bigint,对PHP开发语言影响
查看>>
Mysql:mysql 5.X 报错 ERROR 1193 (HY000): Unknown system variable ‘validate_password_length‘
查看>>
MySQL:MySQL执行一条SQL查询语句的执行过程
查看>>
Mysql:SQL性能分析
查看>>
mysql:SQL按时间查询方法总结
查看>>
MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
查看>>
MySQL:判断逗号分隔的字符串中是否包含某个字符串
查看>>
MySQL:某个ip连接mysql失败次数过多,导致ip锁定
查看>>
MySQL:索引失效场景总结
查看>>
Mysql:避免重复的插入数据方法汇总
查看>>
MyS中的IF
查看>>
M_Map工具箱简介及地理图形绘制
查看>>
m_Orchestrate learning system---二十二、html代码如何变的容易
查看>>
M×N 形状 numpy.ndarray 的滑动窗口
查看>>
m个苹果放入n个盘子问题
查看>>
n = 3 , while n , continue
查看>>
n 叉树后序遍历转换为链表问题的深入探讨
查看>>
N!
查看>>
N-Gram的基本原理
查看>>
n1 c语言程序,全国青少年软件编程等级考试C语言经典程序题10道七
查看>>