C++一个快速将大量点云坐标写入TXT的方法

最近在处理点云时发现写入点云坐标竟然耗费了将近6秒的时间

这是我原来写入点云坐标的代码

ofstream OpenF3(path + "point.txt", ios::app | ios::out );
for (int i = 0; i < cloud->points.size(); ++i)
{
	OpenF3 << cloud->points[i].x << " " << cloud->points[i].y << " " <<         
    cloud->points[i].z << endl;

}
		
penF3.close();

国内的教学帖子基本都是这样教你去写入点云数据,在点云数很少的情况没什么区别,但是点云数量很大时(比如我需要处理的是10w个点云)就很慢

我在国外论坛搜索了一下,发现一种更快的写入方法,这个方法是先将数据串成一个长字符串再写入,避免了一个点一个点的写入

string point_data;
for (int i = 0; i < cloud->points.size(); ++i)
{
	point_data = Convert(cloud->points[i].x) + " " + Convert(cloud->points[i].y) + " " + Convert(cloud->points[i].z)  + "\n";

}
ofstream OpenF3(path + "point.txt", ios::trunc | ios::out);
OpenF3 << point_data;
OpenF3.close(); 

使用后,写入TXT大概用时3秒

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值