2015年2月25日水曜日

2つの点郡データを1つに統合する

 これはチュートリアルにあるのをそのまま使えばいい話だが一応記事にしておく
 引数に与えられた2つのPCDファイルをひとつにまとめて表示+保存するプログラム。

コード

#include "stdafx.h"

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

pcl::PointCloud<pcl::PointXYZ> merge_cloud(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1, pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2)
{
    pcl::PointCloud<pcl::PointXYZ> cloud_merged;//2つの点群をまとめて格納する
    cloud_merged = *cloud1;//1つ目の点群を統合先に格納する
    cloud_merged += *cloud2;//2つ目の点群を統合先に格納する。

    return cloud_merged;
}

int _tmain(int argc, _TCHAR* argv[])
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1 (new pcl::PointCloud<pcl::PointXYZ>);
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2 (new pcl::PointCloud<pcl::PointXYZ>);
   
   
    pcl::io::loadPCDFile(argv[1], *cloud1);
    pcl::io::loadPCDFile(argv[2], *cloud2);

    pcl::io::savePCDFileBinary("merged.pcd" , merge_cloud(cloud1, cloud2));

    return (0); 
}



 まぁ大して面白くもない、ただただ2つの点郡を1つのファイルにまとめるだけ。

0 件のコメント:

コメントを投稿