




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深度和彩图合成点云c+实现技 术总结 2014 4 30 c+优点 优点: 与原来的matlab版本相比,最主要的就是 速度提高很多,matlab版本转换一幅点云, 需要时间在10是左右,而c+的debug只需要 1.217s, release 只需要0.318s. 主要技术点 实现过程中主要技术点 1. 参数文件的读入 2.opencv中矩阵元素的操作 3.类的定义和继承 4.c+文件流操作(二进制文件) 5.动态内存的分配和处理 6.容器的使用 7.c+的一些时间操作 参数文件的读入 校准参数多是以xml或者yml存储的。 opencv不同版本都提供了xml和yml的读入方 法,比较完整灵活的是类似于文件操作的 利用cvfilestorage和与之对应的cvopenfiles 来灵活的操作。如果直接试opencv输出的数 据,则可采用cv较早版本更简单的cvload来 进行读取,将其存入cvmat数据类型。如读 取intrinsic时可以简单的: cvmat *cintrinsic=(cvmat*)cvload(“filepath”); opencv中矩阵元素的操作 opencv中图像像素的操作其实就是对opencv定 义的cvmat或者cv:mat矩阵的元素操作。 (1)对于新版的cv:mat的元素操作,可以通 过矩阵自带的at来操作如把参数读进cv:mat时, cv:mat cintrinsic=(cvmat*)cvload(“path”),如果 想访问矩阵中某个元素则可通过 cintrinsic.at(行号,列号)来进行操 作。假设参数是float型的,则如果想访问第2行, 第3列的元素,则为(c+元素索引从零开始): cintrinsic.at(1,2) opencv中矩阵元素的操作 (3)如果读进cv:mat的彩色图片上,则想访 问每个像素点的颜色值时,可以在访问的元 素后面指定其通道(channel)来实现如将一 幅彩色图片通过imread读进cv:mat cimg里,则 其像素点的红色值为: cimg.at(i,j)2 (opencv的颜色通道 为bgr) opencv中矩阵元素的操作 (3)如果对于旧版的cvmat的元素操作,可以通过 cv_mat_elem来操作。 如把参数读进cvmat时, cvmat *cintrinsic=(cvmat*)cvload(“path”),如果想访问 矩阵中某个元素则可通过 cv_mat_elem( *cintrinsic, 数据类型, 行号,列号) 来进行操作。假设参数是float型的,则如果想访问第2 行,第3列的元素,则为(c+元素索引从零开始): cv_mat_elem( *cintrinsic, float, 1, 2 ) 类的定义和继承 类的定义和继承在本程序里主要体现在对 相机的定义和点云的定义 相机的定义里可以在父类里把深度和彩色 的共同成员定义,而对于深度相机,由于 其采用逆向模型具有一定的特殊性,所以 他在继承相机类的同时,还应有一些自己 的性质,所以需要在继承父类的同时定义 些自己的成员和成员函数。 定义点云类的目的主要是为了方便存储。 类的定义和继承 在声明一个类时为了避免头文件的重复引 用,最好使用#ifndef宏命令 声明类的同时,如果需要自己定义构造函 数,需要严格按照格式进行 在类的声明和类成员函数的定义时,注意 文件结尾的分号 c+文件流操作 c+的文件流操作方便快捷,使用是包含其相关 的头文件即可。 十进制的文件操作可以使用”,会自动忽略空 格和换行,简单方便,不在赘述 对于二进制文件的操作,最常见的就是读写文本 文件,当打开一个文本文件时,我们可以用read 和write函数方便的对齐进行操作,如当打开一个 文件到f时,可以 f.read(要读入到的变量的地址,读取长度) f.write(要写入到的变量的地址,写入长度) 动态内存的分配和处理 c+当需要从栈中分配大量内存时,会出现内 存溢出的问题,如本次实现中,想从栈中直接 分配出一个480*640的浮点型数组,会导致内 存溢出,所以需要从堆中来分配较大的内存, c+中new可以很好的实现这个功能,如上例 则可定义为 float(*dimg)640 = new float480640; 需要注意的是,堆中分配的内存要用delete 及 时释放,否则会导致机器越来越慢,甚至卡死。 容器的使用 c+ 中vector是一个很好用的类。其在应对 不确定长度的数据类型时,尤其具有优越 性。 访问其元素可以通过指针迭代器来实现, 操作其元素可以通过push_back,pop_back, erase等来操作 关于c+的一些时间操作 获取当前程序运行的时间 想要获取当前程序或者程序片段运行的时间, 非常简单,只需在程序开始和结尾定义一个 clock_t变量,令该变量=clock();分别获取时 间,二者相减除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源汽车电池布局与车身结构优化2025年技术创新应用报告
- 2025年中国个性化护肤品行业市场分析及投资价值评估前景预测报告
- 2025年中国高压马桶行业市场分析及投资价值评估前景预测报告
- 2025年中药配方颗粒质量标准与市场品牌价值评估
- 2025年房地产经纪行业客户满意度提升策略报告
- 浙江省衢州市仲尼中学高一信息技术《字处理》说课稿
- 2025年中国高尔夫球旗杆行业市场分析及投资价值评估前景预测报告
- 2025年中国高纯度丙二酸行业市场分析及投资价值评估前景预测报告
- 第一节 法国大革命开始时期的政治斗争说课稿-2025-2026学年高中历史北师大版2010选修2近代社会的民主思想与实践-北师大版2010
- 2025年中国橄榄球防护装备行业市场分析及投资价值评估前景预测报告
- 特立帕肽治疗骨质疏松性骨折中国专家共识(2024版)解读
- 电费保证金协议书范文范本
- 代谢相关(非酒精性)脂肪性肝病防治指南2024年版解读课件2
- 《精神病学》考试题库完整
- 自锁现象与摩擦角
- 十二青少年健康危险行为
- 谢孟媛中级文法讲义
- 中国少年先锋队入队申请书 带拼音
- 动火证模板完整版
- 泰国-英语-介绍-
- 水力学与桥涵水文课件
评论
0/150
提交评论