资源简介
彩色图片和深度图片生成点云文件
代码片段和文件信息
// C++ 标准库
#include
#include
using namespace std;
// OpenCV 库
#include
#include
// PCL 库
#include
#include
#include
// 定义点云类型
typedef pcl::PointXYZRGBA PointT;
typedef pcl::PointCloud PointCloud;
// 相机内参
const double camera_factor = 1000;
const double camera_cx = 979.674;
const double camera_cy = 535.383;
const double camera_fx = 1043.02;
const double camera_fy = 1047.78;
// 主函数
int main( int argc char** argv )
{
// 读取./data/rgb.png和./data/depth.png,并转化为点云
// 图像矩阵
cv::Mat rgb depth;
// 使用cv::imread()来读取图像
// API: http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imread#cv2.imread
rgb = cv::imread( “0_Color.png“ );
// rgb 图像是8UC3的彩色图像
// depth 是16UC1的单通道图像,注意flags设置-1表示读取原始数据不做任何修改
depth = cv::imread( “0_Depth.png“ -1 );
// 点云变量
// 使用智能指针,创建一个空点云。这种指针用完会自动释放。
PointCloud::Ptr cloud ( new PointCloud );
// 遍历深度图
for (int m = 0; m < depth.rows; m++)
for (int n=0; n < depth.cols; n++)
{
// 获取深度图中(mn)处的值
ushort d = depth.ptr(m)[n];
// d 可能没有值,若如此,跳过此点
// if (d == 0)
// continue;
// d 存在值,则向点云增加一个点
PointT p;
// 计算这个点的空间坐标
p.z = double(d) / camera_factor;
// if(p.z>1)
// continue;
p.x = (n - camera_cx) * p.z / camera_fx;
// if(p.x<-0.15||p.x>0.15)
// continue;
p.y = -(m - camera_cy) * p.z / camera_fy;
// 从rgb图像中获取它的颜色
// rgb是三通道的BGR格式图,所以按下面的顺序获取颜色
p.b = rgb.ptr(m)[n*3];
p.g = rgb.ptr(m)[n*3+1];
p.r = rgb.ptr(m)[n*3+2];
// 把p加入到点云中
cloud->points.push_back( p );
}
// 设置并保存点云
cloud->height = 1;
cloud->width = cloud->points.size();
cout<<“point cloud size = “<points.size()< cloud->is_dense = false;
pcl::io::savePCDFile( “./0_image.pcd“ *cloud );
pcl::io::savePLYFile( “./0_image.ply“ *cloud );
// 清除数据并退出
cloud->points.clear();
cout<<“Point cloud saved.“< return 0;
}
- 上一篇:长沙市POI数据.zip
- 下一篇:天津大学历年数据库期末考试试题及答案
相关资源
- ICP+NDT点云配准
- 1种新的散乱点云快速去噪算法
- 可移植的snprintf,遵循C99标准-portabl
- 点云库PCL学习教程 完整版
- .las格式点云文件
- icp三维点云配准文件
- weibo_reply1.zip
- 地形点云.pcd
- 英文原版-Making IT Lean Applying Lean Prac
- openGL实现三维点云显示
- GA+ICP代码
- 建筑物的地面扫描点云数据
- 点云拼接和拟合算法
- 点云TXT转换PCD
- PCL点云库SACSegmentation用法demo
- 小兔子pcd点云数据pcl官方案例1)
- 八叉树点云精简
- fandisk点云数据,asc文件数据,三维模
- 斯坦福数据集六个txt格式点云文件.
- 点云试验数据
- Generalized-ICP 论文
- 点云测量数据处理
-
fast desc
riptors点云粗配准配准论文, - 点云数据读取 使用osg 附带点云数据
- osg显示点云
- 利用PCL,OpenCV求取点云的体积
- Cyclone快速入门中文版
- OpenNI获取三维点云并用OpenGL显示可旋
- Trimble RealWorks 三维处理软件
- 知名的斯坦福兔子的三维点云数据,
评论
共有 条评论