PCL 点云数据操作 OpenCV遍历数据

1.对于点云类型实例cloud,对其第i个点进行赋值操作,使用cloud.point[i].x 和 cloud.point[i].y 和cloud.point[i].z 分别对其XYZ坐标赋值。

  cloud.point[i].x =

  cloud.point[i].y =

  cloud.point[i].z =

2.OpenCV 遍历矩阵M,使用行指针M.ptr<DataType>(row),该指针指向第row行。

  <DataType>* data = M.ptr<DataType>(row)

3.OpenCV 取给定位置索引矩阵M元素,M.at<DataType>(i,j),表示取第i行,第j列元素。

  a = M.at<DataType>(i,j)

以下是例程:

 1     //使用深度数据,重建三维点云
 2     int row = 0, col = 0, pointId = 0;
 3     for (row = 0;row < depthHeight;row++)// row == y 遍历深度矩阵所有行
 4     {
 5         unsigned short* data = DepthData.ptr<unsigned short>(row);
 6         for(col = 0;col < depthWidth;col++)// col == x 遍历深度矩阵所有列
 7         {
 8             if(*data>500 && *data<1500)    //取0.5m-1.5m范围深度数据
 9             {
10                 pointId ++;
11                 // [X,Y,Z]‘ = depth[x,y] * inv_K * [x,y,1]
12                 cloud.points[pointId].x = *data * (col * mInvK.at<float>(0,0) +
13                     row * mInvK.at<float>(0,1) + mInvK.at<float>(0,2));    //X
14
15                 cloud.points[pointId].y = *data * (col * mInvK.at<float>(1,0) +
16                     row * mInvK.at<float>(1,1) + mInvK.at<float>(1,2));    //Y
17
18                 cloud.points[pointId].z = *data;    //Z
19             }
20             else    // 其他范围数据无操作
21             {
22             }
23             data++;    //深度数据指针,指向下一位置深度数据
24         }
25     }
时间: 2024-10-09 21:07:33

PCL 点云数据操作 OpenCV遍历数据的相关文章

opencv中Mat类型数据操作与遍历

Mat作为opencv中一种数据类型常常用来存储图像,相对与以前的IplImgae类型来说,Mat类型省去了人工的对内存的分配与释放,转而自动分配释放.Mat Class主要包括两部个数据部分:一个是matrix header(包括matrix的大小尺寸,储存方法,储存地址等等..),另一个是指向存储像素值的矩阵的指针. Opencv中对Mat的复制分为两种, Mat A, C; // creates just the header parts A = imread(argv[1], CV_LO

MySQL数据操作

一, MySQL的软件架构 a) 开启MySQL服务器:以windows服务的形式开启,在cmd下net start mysql|net stop mysql,在cmd下使用mysqld –default-file= "d:/amp/mysql/my.ini" b) 连接MySQL服务器 c) mysql的帮助命令,help,里面的指令都可以使用  \字母 来完成 d) mysql的注释符:行注释:#或-- ,块注释是/*   */ 二, 数据库的操作 a) 创建数据库:create

数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。

http://www.cnblogs.com/joechinochl/articles/5252518.html 1)数据结构:数据模型中的数据结构主要描述数据的类型.内容.性质以及数据间的联系等.数据结构是数据模型的基础,数据操作和约束都建立在数据结构上.不同的数据结构具有不同的操作和约束. 2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式. 3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法.词义联系.他们之间的制约和依存关系,以及数据动态变化的规

作业一软件简介与数据操作

SPSS(Statistical Product and Service Solutions),"统计产品与服务解决方案"软件.最初软件全称为"社会科学统计软件包"(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为"统计产品与服务解决方案",标志着SPSS的战略方向正在做出重大调整.为IBM

Bmob移动后端云服务平台--Android从零开始--(三)Bmob数据操作((批量)增删改)

Bmob移动后端云服务平台--Android从零开始--(三)Bmob数据操作((批量)增删改) 上篇文章简单的利用Bmob实现了用户注册与登录效果(http://blog.csdn.net/a123demi/article/details/42059621). 在项目中,对数据的操作脱离不了增删改查.Bmob其实也一样,他对数据操作的增删改查做了很好的封装,以及其批量的处理.本文将重点讲解利用Bmob实现Android端与Bmob服务端的数据操作,实现增加.修改.删除以及他们的批量处理. 源码

Jquery Ajax 操作函数跟JQuery 遍历函数跟JQuery数据操作函数

JQuery文档操作方法 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数                                   描述 jQuery.ajax()                 执行异步 HTTP (Ajax) 请求. .ajaxComplete()            当 Ajax 请求完成时注册要调用的处理程序.这是一个 Ajax 事件. .ajaxError()             

Cocos数据篇[3.4](3) ——XML数据操作

[唠叨] XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分.游戏等级等信息,和描述一些资源等. 加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件. 另外 UserDefault 单例类保存的数据,也是存储在xml文件中的. Cocos2d-x 已经加入了 tinyxml2库 用于xml的解析.3.x版本位于external/tinyxml2下. 本节要介绍的就是:如何使用 tinyxml2库 来操作处理xml文件. [参考

java集合中的一个移除数据陷阱(遍历集合自身并同时删除被遍历数据)

下面是网上的其他解释,更能从本质上解释原因:Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁. Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast 原则 Iterator 会马上抛出 java.util.ConcurrentModificationException 异常.所以 Iterator 在工作的时候是不允许被迭代的

云服务器 ECS Linux 系统盘数据转移方法

转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业务增加,现有系统盘已无法满足业务需求.执行 df -h 查询空间使用率接近 100%,需要将数据转移至新购买的数据盘. 处理办法 针对此类情况,可参考以下思路进行解决. 注:涉及数据操作,操作前请注意通过快照等手段进行备份. 1. 购买数据盘,创建好分区后,在系统内挂载数据盘到 /mnt/shuju