点云读取加速c++ ASCii 模式ply 或者txt

2023-11-08

相较于Qt Qtextstream的性能提升十倍!!!!!!!!
本文点云格式特殊 有需要自行修改即可
点云格式

    QFile dataFile(fileName);
    bool ret = dataFile.open(QIODevice::ReadOnly|QIODevice::Text);
    if(ret)
    {
		
		uchar* fpr = dataFile.map(0, dataFile.size());
		int cnt = 0;
		int subcnt = 0;
		char *substr;
		char *s = strdup((char*)fpr);
		
		//切换到element vertex 行
		substr = mystrsep(&s, "\n");
		substr = mystrsep(&s, "\n");
		substr = mystrsep(&s, "\n");
		substr = mystrsep(&s, "\n");

		//分割出数字
		char *lineSubStr;
		int total_num = 0;
		while (subcnt < 3)
		{
			lineSubStr = mystrsep(&substr, " ");		
			if(subcnt ==2)
				total_num = atof(lineSubStr);
			subcnt++;
		}
		//分配点内存
		std::vector<std::vector<float>>temp_points(total_num, {0,0,0,0,0,0,0,0,0});
		for(int i=0;i<11;i++)
		substr = mystrsep(&s, "\n");

		//读取内容		
		for (int i = 0; i < total_num; i++)
		{
			substr = mystrsep(&s, "\n");
			for (int j = 0; j < 9; j++)
			{
				lineSubStr = mystrsep(&substr, " ");
				temp_points[i][j] = atof(lineSubStr);
			}
		}

参考https://blog.csdn.net/aifei1924/article/details/102263896?ops_request_misc=&request_id=&biz_id=102&utm_term=qt%20%E5%A4%9A%E7%BA%BF%E7%A8%8B%E8%AF%BB%E5%8F%96%E7%82%B9%E4%BA%91&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-102263896.142v5pc_search_quality_down,157v4control&spm=1018.2226.3001.4187

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点云读取加速c++ ASCii 模式ply 或者txt 的相关文章

随机推荐

  • KITTI数据集之点云地图构建

    本文描述了如何通过KITTI数据集 读取激光雷达点云数据 并通过ground truth 对前后两帧点云进行旋转变换 使得二者统一坐标系 不断叠加点云进行点云建图的过程 使用的是KITTI odometry中的07号数据集 其主要内容包括
  • android BSP

    HAL 硬件抽象层 BootLoader 硬件初始化管控 Linux Device Driver Linux 内核驱动
  • Macbook pro搭建unbutu18.04的步骤(省钱又实惠)

    第一步 下载parallels desktop 链接 https pan baidu com s 17Bqw0rWezrfOMLZqTaImag 密码 h0z5 注意 在线下载 离线安装 省钱省事 永久自动激活 小编花了十块钱 第二步 运行
  • AppsFlyer 研究(二)应用内事件

    一 记录应用内事件 应用内事件可助您深入了解应用里正在发生的事 我们建议您花些时间定义要记录的事件 记录应用内事件有助于您衡量KPI 例如ROI 投资回报率 和LTV 生命周期价值 有几种方法可以记录应用内事件 最常见的方法是通过我们在本文
  • Activiti7工作流+idea2021监听器法器的使用

    法器 这次需要个好宝贝 4 监听器 工作流的开头都是创建bpmn文件 注意一点细节问题 需要加监听器了 首先我们得有一个监听器 package listener import org activiti engine delegate pub
  • 2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复

    如果有嵌入式企业需要招聘校园大使 湖南区域的日常实习 任何区域的暑假Linux驱动实习岗位 可C站直接私聊 或者邮件 zhangyixu02 gmail com 此消息至2025年1月1日前均有效 前言 1 各位私信问问题之前 看看自己的问
  • prometheus监控docker容器实战

    1 cAdvisor介绍 要监控docker状态 需要使用一个软件cAdvisor cAdvisor Container Advisor 是Google开源的容器资源监控和性能分析工具 它是专门为容器而生 可以用于收集正在运行的容器资源使用
  • 企业级日常巡检脚本的编写

    1 系统信息 1 1 操作系统类型 查看操作系统类型命令为 uname 例 root host 134 uname Linux 定义变量 os type uname 1 2 操作系统版本号 查看操作系统版本号命令为 cat etc redh
  • 【论文阅读】Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks

    论文阅读 Learning Spatio Temporal Representation with Pseudo 3D Residual Networks 虽然这是一篇17年ICCV的论文 但是这篇论文里没有使用kinetics数据集 可能
  • 在UFT中使用描述性编程

    在 UFT 中使用描述性编程是一个提高UFT脚本利用率的很好的方式 通常UFT是通过对象库来识别不同的对象 而描述性编程是UFT另外一种能够识别对象的途径 它不依赖于对象库 通过增加一些对象的描述来识别对象的 说明 本例子是以Flight飞
  • 一个问答机器人模型该如何构建

    构建一个问答机器人模型 通常需要以下步骤 准备数据 需要大量的问题和答案对 以供模型学习 预处理数据 可能需要对数据进行分词 词性标注 去停用词等操作 以便输入模型进行训练 选择模型类型 常用的问答机器人模型类型有基于知识库的模型 基于生成
  • 网工学习笔记

    1 什么是IP地址 IP地址 Internet Protocol Address 互联网国际地址 是一种在Internet上的给主机编址的方式 它主要是为互联网上的每一个网络和每一台主机分配一个逻辑地址 以此来屏蔽物理地址的差异 IP地址就
  • APP脱壳之MDEX的使用步骤

    并不是每一个APP都会加壳 根据以往的经验 一般情况下加壳的有两种情况 第一种是像360公司 腾讯 百度这些公司 他们有自己的加壳技术 就会给自己需要加壳的产品都会加壳 第二种是普通APP 包括但不限于一些色情类的 或者其他用户体量不大的A
  • Cuda 学习教程六:执行模型

    Cuda 学习教程六 执行模型 今天看到一篇讲解CUDA模型的文章 很不错 转载记录一下 CUDA编程4 执行模型 上
  • 雨滴桌面插件大全_电脑技巧之桌面美化,字体美化,透明效果全都有

    Windows技巧 桌面美化篇 电脑的日常使用中 相信百分之九十九的玩家的电脑显示得最多的不是游戏也不是办公软件 而是桌面 一个干净整洁甚至是漂亮的桌面能够大幅度提高电脑日常使用的幸福感 今天我就来分享一下电脑的桌面美化软件 1 字体美化
  • 解决缺少api-ms-win-crt-runtime-

    答主在安装MongoDB的时候 遇到了api ms win crt runtime 1 1 0 dll的问题 历经两天时间终于解决 下面是我的解决历程 首先是这个图 这个是因为没有微软的visual2015c 运行库环境 需要安装 地址 h
  • 刷脸识别改变支付零售日常生活

    据对相貌特征信息的生物辨认技能促就了刷脸付的诞生 并且付宝官方力推刷脸付旨在替代了扫码付出 当然新型的刷脸付款方式关于很多人仍是比较忧虑的 觉得会存在必定安全隐患 那么刷脸付安全吗 有保证吗 那么下面就来解答大家所忧虑的刷脸付安全性问题 早
  • webpack打包入口指定某文件夹内所有js作为入口文件

    webpack config js webpack config js const path require path const glob require glob module exports 指定 packs 文件夹下的 js 文件作
  • Navicat连接MySQL时弹出:1045:Access denied for user ‘root’@’localhost’

    错误原因 当登录MySQL数据库出现 Error 1045 错误时 表明你输入的用户名或密码错误被拒绝访问了 也可能是你的账号不允许从远程登录 只能在localhost本地登录数据库 解决办法如下 用管理员权限打开cmd 并且cd进入mys
  • 点云读取加速c++ ASCii 模式ply 或者txt

    相较于Qt Qtextstream的性能提升十倍 本文点云格式特殊 有需要自行修改即可 QFile dataFile fileName bool ret dataFile open QIODevice ReadOnly QIODevice