17 #ifndef __RECONSTRUCTION_ROUTINE_H__ 18 #define __RECONSTRUCTION_ROUTINE_H__ 22 #include <pcl/common/common_headers.h> 23 #include <pcl/visualization/pcl_visualizer.h> 24 #include <pcl/filters/statistical_outlier_removal.h> 25 #include <pcl/filters/voxel_grid.h> 27 #include <yarp/sig/Image.h> 28 #include <iCub/stereoVision/disparityThread.h> 30 class ReconstructionRoutine
34 DisparityThread* disp;
36 yarp::os::BufferedPort<yarp::sig::ImageOf<yarp::sig::PixelMono> > disparityOut;
38 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud;
39 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudComplete;
41 void triangulation(IplImage* imgL, pcl::PointCloud<pcl::PointXYZRGB>::Ptr input, yarp::os::Bottle& pixelList);
42 void filter(pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_in,pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_in_filtered);
46 ReconstructionRoutine();
47 ~ReconstructionRoutine() {};
50 bool reconstruct(IplImage* imgL, IplImage* imgR, yarp::os::Bottle& pixelList);
51 bool updateDisparity(IplImage* imgL, IplImage* imgR);
52 bool triangulateSinglePoint(IplImage* imgL, IplImage* imgR, yarp::sig::Vector &point2D, yarp::sig::Vector &point3D);
53 pcl::PointCloud<pcl::PointXYZRGB>::Ptr getPointCloud();
54 pcl::PointCloud<pcl::PointXYZRGB>::Ptr getPointCloudComplete();
57 bool open(
const yarp::os::Property &options);