PCL 点云数据操作 OpenCV遍历数据
2014-09-06 10:22
162 查看
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)
以下是例程:
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)
以下是例程:
//使用深度数据,重建三维点云 int row = 0, col = 0, pointId = 0; for (row = 0;row < depthHeight;row++)// row == y 遍历深度矩阵所有行 { unsigned short* data = DepthData.ptr<unsigned short>(row); for(col = 0;col < depthWidth;col++)// col == x 遍历深度矩阵所有列 { if(*data>500 && *data<1500) //取0.5m-1.5m范围深度数据 { pointId ++; // [X,Y,Z]' = depth[x,y] * inv_K * [x,y,1] cloud.points[pointId].x = *data * (col * mInvK.at<float>(0,0) + row * mInvK.at<float>(0,1) + mInvK.at<float>(0,2)); //X cloud.points[pointId].y = *data * (col * mInvK.at<float>(1,0) + row * mInvK.at<float>(1,1) + mInvK.at<float>(1,2)); //Y cloud.points[pointId].z = *data; //Z } else // 其他范围数据无操作 { } data++; //深度数据指针,指向下一位置深度数据 } }
相关文章推荐
- 如何对memcache的数据(key-value)进行遍历操作
- 一个带游标的遍历数据的函数|数据库操作|软件开发
- [转载]如何对memcache的数据(key-value)进行遍历操作
- SQL使用游标遍历多层table获取每行的数据进行操作
- 20-数据结构_树-操作-遍历_树的应用
- VBScript 遍历表单元素, 简化数据操作代码
- 遍历表格中的input转化为json数据传到后台解析实现一些操作
- OpenCV数据读写操作
- 对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- 一个带游标的遍历数据的函数|数据库操作|软件开发
- 学习opencv第三章 基本数据类型 ,矩阵创建,操作,访问
- 如何对memcache的数据(key-value)进行遍历操作
- 学习OpenCV——Mat数据操作之普通青年、文艺青年、暴力青年.& Mat注意事项
- C++中读入一个文件夹下多个文件的数据操作(文件夹遍历)
- 如何对memcache的数据(key-value)进行遍历操作
- 如何对memcache的数据(key-value)进行遍历操作
- OpenCV数据读写操作
- 笔记:OpenCV操作XML存储数据
- 如何对memcache的数据(key-value)进行遍历操作