PCL/환경설정

PCL을 통하여 Hello World 찍기

모래반지빵냐빵냐 2015. 4. 10. 15:08

윈도우에서  PCL을 설치하였으면 제대로 동작하는지 확인할 필요가 있다.

 

TestPCL 콘솔 프로젝트를 만들어서 간단하게 테스트해 보도록 하자.

 

PCL 1.6과 Visual Studio 2008을 기준으로 작성되었다.

 

 

1. TestPCL.cpp 파일에 코딩을 한다.

 

// TestPCL.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

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

using namespace std;
using namespace pcl;
using namespace io;


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

 // 5x1 짜리 xyz point cloud data buffer를 할당한다.

 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);
 }

 

 //  값을 저장한다.

 savePCDFileASCII ("test_pcd.pcd", cloud);

 cerr << "Hello World" << endl;
 cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << endl;

 

 // 값을 터미널에 출력한다

 for (size_t i = 0; i < cloud.points.size (); ++i)
  cerr << "    " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << endl;


 return 0;
}

 

2. Property 설정을 한다.

   Configuration Prpperties -> C/C++ -> Additional Include Directories

   Configuration Properties -> Linker -> Additional Library Directories

 

   -> 설정해주는 파일들은 OpenNI, PCL, boost, Eigen,, FLANN, Qhull, VTK

 

* Additional Include Directories 

  " c:\Program Files (x86)\OpenNI\Include";"c:\Program Files (x86)\PCL 1.6.0\include\pcl-1.6";"c:\Program Files (x86)\PCL 1.6.0\3rdParty\Boost\include";"c:\Program Files (x86)\PCL 1.6.0\3rdParty\Eigen\include";"c:\Program Files (x86)\PCL 1.6.0\3rdParty\FLANN\include";"c:\Program Files (x86)\PCL 1.6.0\3rdParty\Qhull\include";"c:\Program Files (x86)\PCL 1.6.0\3rdParty\VTK\include\vtk-5.8"

  

* Additional Library Directories

  c:\Program Files (x86)\openNi\Lib;c:\Program Files (x86)\PCL 1.6.0\lib;c:\Program Files (x86)\PCL 1.6.0\3rdParty\Boost\lib;c:\Program Files (x86)\PCL 1.6.0\3rdParty\FLANN\lib;c:\Program Files (x86)\PCL 1.6.0\3rdParty\Qhull\lib;c:\Program Files (x86)\PCL 1.6.0\3rdParty\VTK\lib\vtk-5.8;

 

 

  

 

 

3. stdafx.cpp 파일에 라이브러리를 링크시킨다.

   게시글 (PCL을 설치하여보자)와 같은 내용이다. http://blog.daum.net/openpcl/6 


#ifdef _DEBUG
 #pragma comment(lib, "pcl_apps_debug.lib")
 #pragma comment(lib, "pcl_common_debug.lib")
 #pragma comment(lib, "pcl_features_debug.lib")
 #pragma comment(lib, "pcl_filters_debug.lib")
 #pragma comment(lib, "pcl_io_debug.lib")
 #pragma comment(lib, "pcl_io_ply_debug.lib")
 #pragma comment(lib, "pcl_kdtree_debug.lib")
 #pragma comment(lib, "pcl_keypoints_debug.lib")
 #pragma comment(lib, "pcl_octree_debug.lib")
 #pragma comment(lib, "pcl_registration_debug.lib")
 #pragma comment(lib, "pcl_sample_consensus_debug.lib")
 #pragma comment(lib, "pcl_search_debug.lib")
 #pragma comment(lib, "pcl_segmentation_debug.lib")
 #pragma comment(lib, "pcl_surface_debug.lib")
 #pragma comment(lib, "pcl_tracking_debug.lib")
 #pragma comment(lib, "pcl_visualization_debug.lib")

#else

 #pragma comment(lib, "pcl_apps_release.lib")
 #pragma comment(lib, "pcl_common_release.lib")
 #pragma comment(lib, "pcl_features_release.lib")
 #pragma comment(lib, "pcl_filters_release.lib")
 #pragma comment(lib, "pcl_io_release.lib")
 #pragma comment(lib, "pcl_io_ply_release.lib")
 #pragma comment(lib, "pcl_kdtree_release.lib")
 #pragma comment(lib, "pcl_keypoints_release.lib")
 #pragma comment(lib, "pcl_octree_release.lib")
 #pragma comment(lib, "pcl_registration_release.lib")
 #pragma comment(lib, "pcl_sample_consensus_release.lib")
 #pragma comment(lib, "pcl_search_release.lib")
 #pragma comment(lib, "pcl_segmentation_release.lib")
 #pragma comment(lib, "pcl_surface_release.lib")
 #pragma comment(lib, "pcl_tracking_release.lib")
 #pragma comment(lib, "pcl_visualization_release.lib")
#endif

 

4. 프로그램을 실행하면 아래와 같이 출력되면 성공이다

 

   

 

* 테스트 프로그램 


TestPCL.zip