stereo_disparity.hpp
Go to the documentation of this file.
00001 #ifndef __fovis_stereo_disparity_hpp__
00002 #define __fovis_stereo_disparity_hpp__
00003 
00004 #include <inttypes.h>
00005 
00006 #include "stereo_calibration.hpp"
00007 #include "depth_source.hpp"
00008 #include "frame.hpp"
00009 
00010 namespace fovis
00011 {
00012 
00022 class StereoDisparity : public DepthSource
00023 {
00024   public:
00025     StereoDisparity(const StereoCalibration* calib);
00026 
00027     ~StereoDisparity();
00028 
00034     void setDisparityData(const float* disparity_data);
00035 
00036     bool haveXyz(int u, int v);
00037 
00038     void getXyz(OdometryFrame* frame);
00039 
00040     void refineXyz(FeatureMatch* matches,
00041         int num_matches,
00042         OdometryFrame* frame);
00043 
00044     double getBaseline() const { return _calib->getBaseline(); }
00045 
00046   private:
00047     typedef std::vector<std::pair<double, double> > Points2d;
00048 
00055     bool getXyzInterp(KeypointData* kpdata);
00056 
00063     Eigen::Vector3d getXyzValues(int u, int v, float disparity);
00064 
00065     const StereoCalibration* _calib;
00066 
00067     int _width;
00068     int _height;
00069 
00070     Eigen::Matrix4d *_uvd1_to_xyz;
00071 
00072     float* _disparity_data;
00073 };
00074 
00075 }
00076 
00077 #endif


libfovis
Author(s): Albert Huang, Maurice Fallon
autogenerated on Thu Jun 6 2019 20:16:12