44 #include <visp3/core/vpConfig.h> 46 #if defined( VISP_HAVE_OCCIPITAL_STRUCTURE ) && ( VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11 ) && \ 47 ( defined( VISP_HAVE_PCL ) ) 50 #include <pcl/visualization/cloud_viewer.h> 51 #include <pcl/visualization/pcl_visualizer.h> 54 #include <visp3/core/vpImageConvert.h> 55 #include <visp3/gui/vpDisplayGDI.h> 56 #include <visp3/gui/vpDisplayX.h> 57 #include <visp3/sensor/vpOccipitalStructure.h> 64 unsigned int display_scale = 1;
67 ST::CaptureSessionSettings settings;
68 settings.source = ST::CaptureSessionSourceId::StructureCore;
69 settings.structureCore.visibleEnabled =
true;
70 settings.applyExpensiveCorrection =
true;
78 #if defined( VISP_HAVE_X11 ) 80 #elif defined( VISP_HAVE_GDI ) 87 display_visible.
init( I_visible, static_cast< int >( I_visible.
getWidth() / display_scale ) + 80, 10,
90 pcl::PointCloud< pcl::PointXYZRGB >::Ptr pointcloud(
new pcl::PointCloud< pcl::PointXYZRGB > );
92 sc.
acquire( (
unsigned char *)I_visible.
bitmap, NULL, NULL, pointcloud );
94 pcl::visualization::PCLVisualizer::Ptr viewer(
new pcl::visualization::PCLVisualizer(
"3D Viewer" ) );
95 pcl::visualization::PointCloudColorHandlerRGBField< pcl::PointXYZRGB > rgb( pointcloud );
97 viewer->setBackgroundColor( 0, 0, 0 );
98 viewer->initCameraParameters();
99 viewer->setCameraPosition( 0, 0, -0.5, 0, -1, 0 );
106 sc.
acquire( (
unsigned char *)I_visible.
bitmap, NULL, NULL, pointcloud );
114 static bool update =
false;
117 viewer->addPointCloud< pcl::PointXYZRGB >( pointcloud, rgb,
"sample cloud" );
118 viewer->setPointCloudRenderingProperties( pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1,
"sample cloud" );
123 viewer->updatePointCloud< pcl::PointXYZRGB >( pointcloud, rgb,
"sample cloud" );
126 viewer->spinOnce( 30 );
133 std::cerr <<
"Structure SDK error " << e.
what() << std::endl;
135 catch (
const std::exception &e )
137 std::cerr << e.what() << std::endl;
146 #if !defined( VISP_HAVE_OCCIPITAL_STRUCTURE ) 147 std::cout <<
"You do not have Occipital Structure SDK functionality enabled..." << std::endl;
148 std::cout <<
"Tip:" << std::endl;
149 std::cout <<
"- Install libStructure, configure again ViSP using cmake and build again this example" << std::endl;
151 #elif ( VISP_CXX_STANDARD < VISP_CXX_STANDARD_11 ) 152 std::cout <<
"You do not build ViSP with c++11 or higher compiler flag" << std::endl;
153 std::cout <<
"Tip:" << std::endl;
154 std::cout <<
"- Configure ViSP again using cmake -DUSE_CXX_STANDARD=11, and build again this example" << std::endl;
155 #elif !defined( VISP_HAVE_PCL ) 156 std::cout <<
"You do not have PCL 3rd party installed." << std::endl;
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
Type * bitmap
points toward the bitmap
Display for windows using GDI (available on any windows 32 platform).
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
unsigned int getWidth(vpOccipitalStructureStream stream_type)
error that can be emited by ViSP classes.
bool open(const ST::CaptureSessionSettings &settings)
static void flush(const vpImage< unsigned char > &I)
VISP_EXPORT double measureTimeMs()
void acquire(vpImage< unsigned char > &gray, bool undistorted=false, double *ts=NULL)
static void display(const vpImage< unsigned char > &I)
void setDownScalingFactor(unsigned int scale)
const char * what() const
vpCameraParameters getCameraParameters(const vpOccipitalStructureStream stream_type, vpCameraParameters::vpCameraParametersProjType type=vpCameraParameters::perspectiveProjWithoutDistortion)
unsigned int getHeight(vpOccipitalStructureStream stream_type)
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
unsigned int getWidth() const