33 #include <VisionX/interface/components/RGBDImageProvider.h>
36 #include <Eigen/Geometry>
38 #include <pcl/common/transforms.h>
39 #include <pcl/point_cloud.h>
40 #include <pcl/point_types.h>
44 #include <libfreenect2/frame_listener_impl.h>
45 #include <libfreenect2/libfreenect2.hpp>
46 #include <libfreenect2/packet_pipeline.h>
47 #include <libfreenect2/registration.h>
74 defineOptionalProperty<bool>(
"EnableRGB",
true,
"Enable color image.");
75 defineOptionalProperty<bool>(
"EnableDepth",
true,
"Enable depth image.");
76 defineOptionalProperty<KinectProcessorType>(
79 "Kinect Pipeline for image processing. Can be one of CPU, GL, CL, CLKDE, CUDA, "
87 defineOptionalProperty<std::string>(
"Serial",
89 "Serial Number of the Camera to use. If empty the "
90 "serial will be chosen automatically");
91 defineOptionalProperty<bool>(
"Mirror",
false,
"Mirrors the resulting images");
92 defineOptionalProperty<std::string>(
93 "ReferenceFrameName",
"DepthCamera",
"Optional reference frame name.");
105 virtual public RGBDPointCloudProviderInterface,
114 listener_(libfreenect2::Frame::
Color | libfreenect2::Frame::Ir |
115 libfreenect2::Frame::Depth),
116 undistorted_(512, 424, 4),
117 registered_(512, 424, 4){};
122 return "KinectV2PointCloudProvider";
195 return getProperty<std::string>(
"ReferenceFrameName");
199 typedef pcl::PointXYZRGBA
PointT;
201 libfreenect2::Freenect2Device::IrCameraParams getCameraIrParameters();
203 libfreenect2::Freenect2Device::ColorCameraParams getCameraRGBParameters();
205 void initializeCameraCalibration();
207 libfreenect2::Freenect2 freenect2_;
208 libfreenect2::Freenect2Device* dev_;
209 libfreenect2::PacketPipeline* pipeline_;
210 libfreenect2::SyncMultiFrameListener listener_;
211 libfreenect2::FrameMap frames_;
213 libfreenect2::Frame undistorted_, registered_;
214 bool enable_rgb_, enable_depth_, mirror_;
222 ImageProviderInterfacePrx imageProviderPrx;
223 std::string providerName;
224 CByteImage** rgbImages_;
225 int rgb_width_, rgb_height_, d_width_, d_height_;
226 StereoCalibration calibration;