2015年3月5日木曜日

PLYデータを点群データ(PCD)に変換する

 現在3次元のデータには複数のファイルフォーマットが存在するが、それらの多くは点群データに変換可能である。今回は有名なPLYファイルを点群データファイルPCDに変換する。
 短すぎるので関数化はしていない。

コード

#include "stdafx.h"

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>

int _tmain(int argc, _TCHAR* argv[])
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

    pcl::PLYReader reader;
    reader.read<pcl::PointXYZ> (argv[1], *cloud);

    std::stringstream Filename;
    std::string name = argv[1];
    name.erase(name.length() - 4);
    Filename << name << ".pcd";
    std::cout << Filename.str() << std::endl;
    pcl::io::savePCDFileBinary(Filename.str(), *cloud);

    return (0);
}
 PLYファイルを表示するプログラムを誤って消してしまったので今回は実行結果を掲載していないが、このプログラムを使用することによって出力される点群データは表示できているので成功していることにする。 前述したが、極めて短いコードなのでプログラムと呼べるのかは疑問である。

0 件のコメント:

コメントを投稿