将bin 格式的点云转换成pcd 的格式有可能乱码,需要将pcd 另存一份
代码在git 代码在git
^W^Y<87>BÙΧ?²<9d>^_@Û¹<86>B<98>nÂ?d;^_@^PØ<86>BÅ Ð?)\^_@^Bë<86>BZdë?<8b>l^_@y©<86>B^L^B^C@^B+^_@<87><96><86>B^R<83>^P@ ^Z^_@<9e>ï<86>BÉv^^@î|^_@^DV<87>BD<8b>,@<9e>ï^_@^?*<8d>BX9<93>A<96>C+@^H¬<89>B®G<93>A²<9d>'@<83>ÀvB^PX<91>Au<93>^X@^[¯vBôý<92>A×£^X@ã¥vBð§<94>A<9c>Ä^X@ö¨vB)\<96>A`å^X@ݤvB=
<98>A%^F^Y@ <9a>vBF¶
mian.cpp
#include <iostream>
#include <cstring>
#include <pcl/io/pcd_io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
bool LoadPCD(std::string filename, pcl::PointCloud<pcl::PointXYZ>::Ptr cloud)
{
if (pcl::io::loadPCDFile<pcl::PointXYZ>(filename, *cloud) == -1)
{
std::cout<< "can't read file " << filename << std::endl;
return (-1);
}
}
int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source(new pcl::PointCloud<pcl::PointXYZ>);
//std::string filename = "/home/oem/lg/project/centerpoint_pro/python_center_point/pcd_data/show/temp1/a.pcd";
std::string filename = "../a.pcd";
// std::string filename = "../table_scene_lms400.pcd";
LoadPCD(filename, cloud_source);
std::cout << "PointCloud_source has: " << cloud_source->points.size () << " data points." << std::endl;
pcl::PCDWriter writer;
std::stringstream ss;
//ss << "/home/oem/lg/project/centerpoint_pro/python_center_point/pcd_data/show/temp1/a1.pcd";
ss << "../a1.pcd";
writer.write<pcl::PointXYZ> (ss.str (), *cloud_source, false); //*
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(bin2pcd)
find_package(PCL 1.2 REQUIRED)
# 加入Boost setting
find_package(Boost COMPONENTS program_options REQUIRED )
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(bin2pcd main.cpp)
target_link_libraries (bin2pcd ${PCL_LIBRARIES} ${Boost_LIBRARIES}) #此处也有修改
install(TARGETS bin2pcd RUNTIME DESTINATION bin)