点云数据写入PCD文件
来源:互联网 发布:mac 固定便签在桌面上 编辑:程序博客网 时间:2024/05/17 08:36
本次是将数据写入pcd文件的小小总结,操作步骤和读点云数据类似,
1.pcb_write.cpp文件
// pcd_write.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int
main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ> cloud;//定义x,y,z坐标
// Fill in the cloud data
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize (cloud.width * cloud.height);
for (size_t i = 0; i < cloud.points.size (); ++i)
{
cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
}
//用随机点值填写PointCloud结构,并设置适当的参数(w、h,is_dense)。
pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud); //保存
std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;
for (size_t i = 0; i < cloud.points.size (); ++i)
std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;
return (0);
}
2.CmakeLists.txt文件
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(pcd_write)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (pcd_write pcd_write.cpp)
target_link_libraries (pcd_write ${PCL_LIBRARIES})
3.结果:
4.生成的pcd文件内容如下:
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH 5
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 5
DATA ascii
1.28125 577.09375 197.9375
828.125 599.03125 491.375
358.6875 917.4375 842.5625
764.5 178.28125 879.53125
727.53125 525.84375 311.28125
5.总结
经过两次的实验,发现,pcd文件的开始部分非常相似,形如下
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH cloud.width
HEIGHT cloud.height
VIEWPOINT 0 0 0 1 0 0 0
POINTS cloud.width
DATA ascii
1.pcb_write.cpp文件
// pcd_write.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
int
main (int argc, char** argv)
{
pcl::PointCloud<pcl::PointXYZ> cloud;//定义x,y,z坐标
// Fill in the cloud data
cloud.width = 5;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize (cloud.width * cloud.height);
for (size_t i = 0; i < cloud.points.size (); ++i)
{
cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
}
//用随机点值填写PointCloud结构,并设置适当的参数(w、h,is_dense)。
pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud); //保存
std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;
for (size_t i = 0; i < cloud.points.size (); ++i)
std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;
return (0);
}
2.CmakeLists.txt文件
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(pcd_write)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (pcd_write pcd_write.cpp)
target_link_libraries (pcd_write ${PCL_LIBRARIES})
3.结果:
4.生成的pcd文件内容如下:
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH 5
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 5
DATA ascii
1.28125 577.09375 197.9375
828.125 599.03125 491.375
358.6875 917.4375 842.5625
764.5 178.28125 879.53125
727.53125 525.84375 311.28125
5.总结
经过两次的实验,发现,pcd文件的开始部分非常相似,形如下
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH cloud.width
HEIGHT cloud.height
VIEWPOINT 0 0 0 1 0 0 0
POINTS cloud.width
DATA ascii
0 0
- 向pcd文件写入点云数据
- 点云数据写入PCD文件
- 向pcd文件写入点云数据
- [Point Cloud Library] 点云数据写入PCD文件
- [Point Cloud Library] 点云数据写入PCD文件
- [Point Cloud Library] 点云数据写入PCD文件
- 从PCD文件写入和读取点云数据
- pcl点云PCD文件
- 从PCD文件中读取点云数据
- 点云txt文件—>pcd文件
- 点云txt文件—>pcd文件
- PCL--PCD(点云数据)文件格式
- PCD(点云数据)文件格式
- PCD(点云数据)文件格式
- PCL--PCD(点云数据)文件格式
- PCD(点云数据)文件格式
- 点云pcd文件的生成
- PCD点云文件的读取
- gcc编译参数-fPIC的一些问题
- Num 10 : HDOJ: 题目1093 :A+B for Input-Output Practice (V)
- 写在开始的话
- Redrain个人维护并使用的DuiLib和UiLib库源码下载地址
- C++ primer.Fifth Edition. PartI,2,Variable Initialization
- 点云数据写入PCD文件
- Dijkstra with priority queue
- Java创建文件要注意的一个问题
- 银行窗口排队叫号系统实现
- android获取外部SDCard(TF Card)
- django 1.8 官方文档翻译: 2-1-3 元选项 (初稿)
- Can not kill oozie job by -kill command
- 开关机压力测试APK学习
- uva 572 - Oil Deposits