stereo
densestereo.h
Go to the documentation of this file.
1 /* Author: Jan Frädrich */
2 
3 #ifndef __DENSE_STEREO_H__
4 #define __DENSE_STEREO_H__
5 
6 #include <iostream>
7 #include <libelas/elas.h>
8 #include <frame_helper/CalibrationCv.h>
9 #include "dense_stereo_types.h"
10 #include <base/samples/DistanceImage.hpp>
11 
12 namespace stereo {
13 
26 class DenseStereo {
27 
28 public:
29  DenseStereo();
30 
31  virtual ~DenseStereo();
32 
36  void setStereoCalibration(const frame_helper::StereoCalibration& stereoCal,
37  const int imgWidth,
38  const int imgHeight);
39 
43  void setLibElasConfiguration(const libElasConfiguration &libElasParam);
44 
50  void setGaussianKernel( int size ) { gaussian_kernel = size; }
51 
59  void processFramePair(const cv::Mat &left_frame, const cv::Mat &right_frame,
60  cv::Mat &left_output_frame, cv::Mat &right_output_frame,
61  bool isRectified = false );
62 
66  void getDistanceImages( cv::Mat &left_disp_image, cv::Mat &right_disp_image );
67 
76  void getDistanceImages( const cv::Mat &left_frame, const cv::Mat &right_frame,
77  cv::Mat &left_output_frame, cv::Mat &right_output_frame,
78  bool isRectified = false );
79 
89  void getDistanceImages( const cv::Mat &left_frame, const cv::Mat &right_frame,
90  base::samples::DistanceImage &left_output_frame, base::samples::DistanceImage &right_output_frame,
91  bool isRectified = false );
92 
102  cv::Mat createDistanceImage(
103  frame_helper::CameraCalibrationCv const& calib,
104  base::samples::DistanceImage& dist_image );
105 
111  base::samples::DistanceImage& dist_image )
112  {
113  return createDistanceImage( calParam.camLeft, dist_image );
114  }
115 
121  base::samples::DistanceImage& dist_image )
122  {
123  return createDistanceImage( calParam.camRight, dist_image );
124  }
125 
126 
127 private:
129  int gaussian_kernel;
130 
132  Elas *elas;
133 
135  frame_helper::StereoCalibrationCv calParam;
136 
138  bool calibrationInitialized;
139 
144  void undistortAndRectify(cv::Mat &image, const frame_helper::CameraCalibrationCv& calib);
145 
149  void cvtCvMatToGrayscaleImage(cv::Mat &image);
150 };
151 
152 }
153 
154 #endif
void processFramePair(const cv::Mat &left_frame, const cv::Mat &right_frame, cv::Mat &left_output_frame, cv::Mat &right_output_frame, bool isRectified=false)
Definition: densestereo.cpp:91
Definition: dense_stereo_types.h:9
cv::Mat createLeftDistanceImage(base::samples::DistanceImage &dist_image)
Definition: densestereo.h:110
cv::Mat createRightDistanceImage(base::samples::DistanceImage &dist_image)
Definition: densestereo.h:120
void setLibElasConfiguration(const libElasConfiguration &libElasParam)
Definition: densestereo.cpp:35
virtual ~DenseStereo()
Definition: densestereo.cpp:21
Definition: configuration.cpp:3
cv::Mat createDistanceImage(frame_helper::CameraCalibrationCv const &calib, base::samples::DistanceImage &dist_image)
Definition: densestereo.cpp:197
DenseStereo()
Definition: densestereo.cpp:11
Definition: densestereo.h:26
void getDistanceImages(cv::Mat &left_disp_image, cv::Mat &right_disp_image)
Definition: densestereo.cpp:166
void setGaussianKernel(int size)
Definition: densestereo.h:50
void setStereoCalibration(const frame_helper::StereoCalibration &stereoCal, const int imgWidth, const int imgHeight)
Definition: densestereo.cpp:26