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;
Display for windows using GDI (available on any windows 32 platform).
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
void init(vpImage< unsigned char > &I, int win_x=-1, int win_y=-1, const std::string &win_title="")
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
virtual void setDownScalingFactor(unsigned int scale)
static void display(const vpImage< unsigned char > &I)
static void flush(const vpImage< unsigned char > &I)
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
error that can be emited by ViSP classes.
const char * what() const
unsigned int getHeight(vpOccipitalStructureStream stream_type)
vpCameraParameters getCameraParameters(const vpOccipitalStructureStream stream_type, vpCameraParameters::vpCameraParametersProjType type=vpCameraParameters::perspectiveProjWithoutDistortion)
void acquire(vpImage< unsigned char > &gray, bool undistorted=false, double *ts=NULL)
unsigned int getWidth(vpOccipitalStructureStream stream_type)
bool open(const ST::CaptureSessionSettings &settings)
VISP_EXPORT double measureTimeMs()