Go to the documentation of this file.00001
00021 #ifndef NTK_STEREO_CALIBRATION_H
00022 #define NTK_STEREO_CALIBRATION_H
00023
00024 #include <ntk/core.h>
00025 #include <opencv/cv.h>
00026 #include <ntk/camera/rgbd_image.h>
00027
00028 namespace ntk
00029 {
00030
00031 class MeshGenerator;
00032 class Pose3D;
00033
00038 class RGBDCalibration
00039 {
00040 public:
00041 RGBDCalibration() :
00042 zero_rgb_distortion(true),
00043 zero_depth_distortion(true),
00044 depth_pose(0),
00045 rgb_pose(0),
00046 depth_baseline(7.5e-02),
00047 depth_offset(1090),
00048 raw_rgb_size(640,480),
00049 rgb_size(480,480),
00050 raw_depth_size(204,204),
00051 depth_size(204,204)
00052 {}
00053
00054 ~RGBDCalibration();
00055
00057 void loadFromFile(const char* filename);
00058
00060 const cv::Size& rgbSize() const { return rgb_size; }
00061 void setRgbSize(cv::Size s) { rgb_size = s; }
00062
00064 const cv::Size& rawRgbSize() const { return raw_rgb_size; }
00065 void setRawRgbSize(cv::Size s) { raw_rgb_size = s; }
00066
00068 const cv::Size& depthSize() { return depth_size; }
00069
00071 cv::Mat1d rgb_intrinsics;
00072
00074 cv::Mat1d rgb_distortion;
00075
00077 bool zero_rgb_distortion;
00078
00080 cv::Mat1d depth_intrinsics;
00081
00083 cv::Mat1d depth_distortion;
00084
00086 bool zero_depth_distortion;
00087
00094 cv::Mat1d R,T;
00095
00097 Pose3D* depth_pose;
00098
00100 Pose3D* rgb_pose;
00101
00103 cv::Mat rgb_undistort_map1, rgb_undistort_map2;
00104 cv::Mat depth_undistort_map1, depth_undistort_map2;
00105
00110 double depth_baseline;
00111
00116 double depth_offset;
00117
00118 cv::Size raw_rgb_size;
00119 cv::Size rgb_size;
00120
00121 cv::Size raw_depth_size;
00122 cv::Size depth_size;
00123
00124 private:
00125 RGBDCalibration(const RGBDCalibration& rhs);
00126 };
00127
00128 }
00129
00130 #endif // NTK_STEREO_CALIBRATION_H