윈도우에서 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