-
Notifications
You must be signed in to change notification settings - Fork 2
Harumo Sasatake edited this page Oct 25, 2018
·
2 revisions
点群をファイルから書き込んだり,読み込んだりを行える関数を説明するよ
読み込み,書き込みできるファイルの拡張子は下記の通り
| 拡張子 | 説明 |
|---|---|
| pcd | pcl公式のファイル |
| ply | 3DCGとかで使用されるファイル |
| obj | 3DCGとかで使用されるファイル |
pcl::io::loadPCDFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::loadPCDFile(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
ファイルからの読み込みに失敗するとこの関数は-1を返すので下記の感じで使いましょう
if (pcl::io::loadPCDFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>) < 0) {
std::cout << "Error! can not load the file! << std::endl;
}
pcl::io::savePCDFileASCII(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::savePCDFileASCII(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
pcl::io::loadPLYFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::loadPLYFile(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
ファイルからの読み込みに失敗するとこの関数は-1を返すので下記の感じで使いましょう
if (pcl::io::loadPLYFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>) < 0) {
std::cout << "Error! can not load the file! << std::endl;
}
pcl::io::savePLYFileASCII(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::savePLYFileASCII(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
pcl::io::loadOBJFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::loadOBJFile(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
ファイルからの読み込みに失敗するとこの関数は-1を返すので下記の感じで使いましょう
if (pcl::io::loadOBJFile(std::string file_name, pcl::PointCloud<pcl::PointXYZ>) < 0) {
std::cout << "Error! can not load the file! << std::endl;
}
pcl::io::saveOBJFileASCII(std::string file_name, pcl::PointCloud<pcl::PointXYZ>)
//ポインタ版
pcl::io::saveOBJFileASCII(std::string file_name, *pcl::PointCloud<pcl::PointXYZ>::Ptr)
実は,pclの保存関数は以下の3通りがある.
- pcl::io::savePCDFileASCII 全部テキスト形式で保存.テキストエディタで見れる.
- pcl::io::savePCDFileBinary ヘッダ部分はテキスト形式で,データ部分はバイナリ形式で保存
- pcl::io::savePCDFileBainaryCompressed ヘッダ部分はテキスト形式で,データ部分はLZF形式で保存
どの形式で保存しても,pcl::io::loadPCDFile関数で読み込み可能. Binary形式 で保存すると書き込が143倍早く,読み込みが250倍早くなり,ファイルサイズは1/3になるなしい. 詳しくはこのブログを参照してください.