不使用PCL库,C++保存PLY文件

2023-11-04

输入文件名和TriangulatePoints的结果。

void savePLY(const std::string& ply3D_filename, cv::Mat& pnts)
{
	time_t t = time(0);
	char tmp1[64];
	strftime(tmp1, sizeof(tmp1), "%m%d-%H%M%S", localtime(&t));
	string PLY3D_filename = ply3D_filename + tmp1 + ".PLY";

	ofstream fout(PLY3D_filename);
	fout << "ply\n";
	fout << "format ascii 1.0\n";
	int pointNumber = pnts.cols;
	fout << "element vertex " << pointNumber << endl;
	fout << "property float x\n";
	fout << "property float y\n";
	fout << "property float z\n";
	//fout << "property uchar red\n";
	//fout << "property uchar green\n";
	//fout << "property uchar blue\n";
	fout << "end_header\n";

	float* pnts3D_row1 = pnts.ptr<float>(0);
	float* pnts3D_row2 = pnts.ptr<float>(1);
	float* pnts3D_row3 = pnts.ptr<float>(2);
	float* pnts3D_row4 = pnts.ptr<float>(3);
	for (int i = 0; i < pointNumber; i++)
	{
		float pnts3D_data4 = *(pnts3D_row4 + i);

		float pnts3D_data1 = *(pnts3D_row1 + i) / pnts3D_data4;
		float pnts3D_data2 = *(pnts3D_row2 + i) / pnts3D_data4;
		float pnts3D_data3 = *(pnts3D_row3 + i) / pnts3D_data4;
		fout << pnts3D_data1 / 1000.0f << ' ' << pnts3D_data2 / 1000.0f << ' ' << pnts3D_data3 / 1000.0f << endl;
	}
	fout.close();
}

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

不使用PCL库,C++保存PLY文件 的相关文章

  • 使用畸变从图像平面计算相机矢量

    我正在尝试使用相机模型来重建可以使用某些相机及其 外部 内部 参数拍摄的图像 这一点我没有任何问题 现在我想添加扭曲 正如它们中所描述的那样OpenCV https docs opencv org 4 x dc dbb tutorial p
  • 使用 OpenCV 查找重叠/复杂的圆

    我想计算红圈半径 图2 我在使用 OpenCV 的 HoughCircles 找到这些圆圈时遇到了麻烦 如图所示 2 我只能使用 HoughCircles 找到中心以黑色显示的小圆圈 original fig 2 由于我知道红色圆圈的中心
  • 在 iPad 上使用 OpenCV 避免碰撞

    我正在开展一个项目 需要使用 OpenCV 实现碰撞避免 这是在 iOS 上完成的 iOS 5 及以上版本即可 项目目标 这个想法是将 iPad 安装在汽车仪表板上并启动应用程序 应用程序应该从相机中抓取帧并进行处理 以检测汽车是否会与任何
  • 如何提取图像中的表格

    我想从图像中提取表格 这个 python 模块https pypi org project ExtractTable https pypi org project ExtractTable 与他们的网站https www extractta
  • 带有 OpenCV 的增强现实 SDK [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 屏幕截图中低分辨率文本的 OCR

    我正在编写一个 OCR 应用程序来从屏幕截图图像中读取字符 目前 我只关注数字 我的方法部分基于这篇博文 http blog damiles com 2008 11 basic ocr in opencv http blog damiles
  • opencv 视频上的颜色阈值

    I am thresholding for a color range in an opencv video The goal is to seperate the B mode black and white information on
  • 在 Python 3.5 64 位上通过 pip 安装 OpenCV

    我尝试安装 OpenCV 但找不到任何合适的 pip 软件包 我决定上网查找有关如何安装它的官方文档 并发现this https opencv python tutroals readthedocs io en latest py tuto
  • 如何在Python中使用tcp套接字发送和接收网络摄像头流?

    我正在尝试重新创建这个项目 https github com hamuchiwa AutoRCCar 我拥有的是服务器 我的电脑 和客户端 我的树莓派 我所做的与原始项目不同的是我尝试使用一个简单的网络摄像头而不是树莓派摄像头将图像从我的
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • Opencv未找到所有轮廓

    我试图找到该图像的轮廓 但是该方法查找轮廓只返回1轮廓 轮廓突出显示image 2 我正在努力寻找all外部轮廓就像这些圆圈 里面有数字 我究竟做错了什么 我可以做什么来实现它 image 1 image 2 以下是我的代码的相关部分 th
  • 如何删除树莓派的相机预览

    我在我的 raspberryPi 上安装了 SimpleCv 并安装了用于使用相机板的驱动程序 uv4l 驱动程序 现在我想使用它 当我在 simpleCV shell Camera 0 getImage save foo jpg 上键入时
  • Python:opencv warpPerspective 既不接受 2 个也不接受 3 个参数

    我发现单应矩阵如下特征匹配 单应性教程 https docs opencv org 3 4 1 d1 de0 tutorial py feature homography html using M mask cv2 findHomograp
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • 多视图几何

    我从相距一定距离的两台相同品牌的相机捕获了两张图像 捕获了相同的场景 我想计算两个相机之间的现实世界旋转和平移 为了实现这一点 我首先提取了两张图像的 SIFT 特征并进行匹配 我现在有基本矩阵也单应性矩阵 然而无法进一步进行 有很多混乱
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • BASH 脚本编译多个 C++ 文件 - OpenCV

    请参见在C 和OpenCV中调用其他文件中的函数 https stackoverflow com questions 24442836 call functions in other files in c and opencv 对于最初的问
  • 指纹奇异点检测

    我正在尝试确定指纹的核心点和增量点 我正在使用庞加莱指数方法 但我无法成功检测到这一点 而且我不明白为什么 First I divide the image in 15x15 blocks then I calculate the x an
  • 如何在 OpenCV 中从 YUV 文件读取帧?

    如何在 OpenCV 中从 YUV 文件读取帧 我编写了一个非常简单的 python 代码来从二进制文件读取 YUV NV21 流 import cv2 import numpy as np class VideoCaptureYUV de

随机推荐

  • c++ vector内存释放踩坑,内存泄漏

    目录 vector删除元素 智能指针 vector移动元素位置 vector条件删除
  • 编译原理之first集,follow集,select集解析

    为了方便自顶向下语法分析 需要求文法对应的first集 follow集 以及select集 本文主要分为两部分 一个是求法解析 还有一个例子详解 第一部分是求法解析 将对first集 follow集 select集分为三种讲解方法 定义介绍
  • pyspark对字段加前缀,拼接字符串

    代码逻辑 在df中 当字段main task id为 0 时 则对字段sub task id加前缀 check 否则取其本身的值 正确代码如下 df2 df withColumn sub task id when col main task
  • SQL窗口函数的使用

    定义 窗口函数 又叫OLAP Online Anallytical Processing 函数 可对数据库数据进行实时分析处理 功能 同时分组和排序 不减少原表的行数 区别于聚合函数 每行数据都生成一个结果 使用场景 排名问题 topN问题
  • USE_STDPERIPH_DRIVER, STM32F10X_HD说明

    如果在STM32工程编译时没有添加USE STDPERIPH DRIVER STM32F10X HD时会出现如下错误 library cortex m3 stm32f10x h 96 error 35 error directive Ple
  • SLAM实战项目(1) — ORB-SLAM2稠密地图重建

    目录 1 整体思路 2 功能实现 3 结果运行 1 TUM数据集下载 2 associate py用于RGB和Depth匹配 3 运行数据集 4 CMakeLists txt文件修改 5 完整PointCloudMapping h和Poin
  • 关于GPT-3和GPT-4,你需要知道都在这里

    友情提示 提示 本文约3500个文字 字数较长 可直接点击序号进入相关目录阅读字数 文章目录 友情提示 前言 一 什么是 GPT 3 GPT 4 和 ChatGPT 二 对未来的担忧 三 什么时候可以用GPT4 四 GPT 4用在什么地方
  • 漏洞扫描工具Goby的安装和使用(新一代网络安全技术)

    简介 Goby使用新一代网络安全技术 通过为目标建立完整的资产数据库 实现快速的安全应急 Goby有哪些优势呢 最丰富的设备规则集 Goby预置了超过10万种规则识别引擎 能针对硬件设备和软件业务系统进行自动化识别和分类 全面的分析出网络中
  • 大一上学期c语言PTA错题总结(自用)(02)

    1 下列程序段的输出结果是 C int main void int a 2 b 1 c 2 if a lt b if b lt 0 c 0 else c printf d n c return 0 A 0 B 1 C 2 D 3 else与
  • 运行维护巡检流程及内容

    运维人员着工装 佩戴工作牌按照程序进入企业 并与企业环保专员联系共同进入基 站 运维人员观察基站站房外部卫生 管路 电气电路是否异常 运维人员进入站房 检查数据采集传输是否正常 各监测设备运行是否正常 历史数 据完整性 检查采样系统是否正常
  • 使用element -ui 遇到的坑

    1 使用el dialog 遮罩层把显示内容遮住了 原因 Dialog 的外层布局的 position 值为 fixed absolute relative 三者之一时 就会出现被蒙板遮住的情况 解决方法 参考链接 https blog c
  • SpringCloudAlibaba实战入门之Dubbo(基于Nacos注册中心)(七)

    一 Dubbo介绍 Dubbo是阿里巴巴公司开源的一个高性能 轻量级的 Java RPC 框架 致力于提供高性能和透明化的 RPC 远程服务调用方案 以及 SOA 服务治理方案 官网 http dubbo apache org 服务提供者在
  • C++11数组了解

    原文链接 C 11数组 array 的使用 码到城攻使用 std array 能够让代码变得更加 现代化 而且封装了一些操作函 数 比如获取数组大小以及检查是否非空https www codecomeon com posts 221 数组介
  • Hadoop NameNode和DataNode只能启动一个问题

    DataNode和NameNode进程不能共存 启动NameNode可以正常启动 但是启动DataNode时发现 NameNode进程不存在了 导致两个无法共存 问题原因 NameNode在format初始化后会生成claserId 集群i
  • Java Web项目部署到Linux后的中文乱码问题

    问题描述 项目通过Maven打成war包传输到Linux上 SQL导出数据和结构后在Linux上的Mysql执行 数据都能正常显示 项目也是正常的访问到了index html 一切显得毫无问题 开始测试项目各个功能是否有异常 当我检查到我的
  • python练习.求s=a+aa+aaa+aaaa+aa...a的值

    题目 求s a aa aaa aaaa aa a的值 其中a是一个数字 例如2 22 222 2222 22222 此时共有5个数相加 几个数相加由键盘控制 from functools import reduce n 0 s n int
  • SegFormer 代码详解+数据流分析

    目录 代码详解 数据流分析 数据流及尺寸变化 输入为512x512x3的图片 使用b0主干网络 Encoder mit backbone Transformer Block 解码头 Head 代码详解 import torch 导入PyTo
  • java内存模型的角度分析volatile关键字

    多任务处理 多任务处理的背景 计算机的运算能力增强 计算机的运算速度与它的存储和通信子系统的速度差距太大 大量的时间都花费在磁盘I O 网络通信或者数据库访问中上 我们不希望处理器在大部分时间里都处于等待其他资源的空闲状态 计算机多任务处理
  • Thymeleaf的常用表达式及简单使用实例

    什么是Thymelaf 它是非常可拓展的 允许自定义名字来定义一组模板属性 或者甚至是标签 它还带有一些称为标准方言的东西 它们定义了一组功能 这些功能满足大多数情况 标准表达式五种类型 变量表达式 选择表达式 消息表达式 i18n 链接表
  • 不使用PCL库,C++保存PLY文件

    输入文件名和TriangulatePoints的结果 void savePLY const std string ply3D filename cv Mat pnts time t t time 0 char tmp1 64 strftim