45 const std::string & path,
47 const Transform & localTransform = Transform::getIdentity());
50 virtual bool init(
const std::string & calibrationFolder =
".",
const std::string & cameraName =
"");
51 virtual bool isCalibrated()
const;
54 std::string getPath()
const {
return _path;}
55 unsigned int imagesCount()
const;
56 std::vector<std::string> filenames()
const;
57 bool isImagesRectified()
const {
return _rectifyImages;}
58 int getBayerMode()
const {
return _bayerMode;}
59 const CameraModel & cameraModel()
const {
return _model;}
61 void setPath(
const std::string & dir) {_path=dir;}
62 virtual void setStartIndex(
int index) {_startAt = index;}
63 virtual void setMaxFrames(
int value) {_maxFrames = value;}
64 void setDirRefreshed(
bool enabled) {_refreshDir = enabled;}
65 void setImagesRectified(
bool enabled) {_rectifyImages = enabled;}
66 void setBayerMode(
int mode) {_bayerMode = mode;}
68 void setTimestamps(
bool fileNamesAreStamps,
const std::string & filePath =
"",
bool syncImageRateWithStamps=
true)
70 _filenamesAreTimestamps = fileNamesAreStamps;
71 _timestampsPath=filePath;
72 _syncImageRateWithStamps = syncImageRateWithStamps;
75 void setConfigForEachFrame(
bool value)
77 _hasConfigForEachFrame = value;
79 bool isConfigForEachFrame()
const {
return _hasConfigForEachFrame;}
97 void setMultiCameraCalibration(
bool enabled)
99 _multiCameraCalib = enabled;
103 const std::string & dir,
105 const Transform & localTransform=Transform::getIdentity())
108 _scanLocalTransform = localTransform;
109 _scanMaxPts = maxScanPts;
112 void setDepthFromScan(
bool enabled,
int fillHoles = 1,
bool fillHolesFromBorder =
false)
114 _depthFromScan = enabled;
115 _depthFromScanFillHoles = fillHoles;
116 _depthFromScanFillHolesFromBorder = fillHolesFromBorder;
120 void setOdometryPath(
const std::string & filePath,
int format = 0)
122 _odometryPath = filePath;
123 _odometryFormat = format;
127 void setGroundTruthPath(
const std::string & filePath,
int format = 0,
const Transform & localTransform = Transform::getIdentity())
129 _groundTruthPath = filePath;
130 _groundTruthFormat = format;
131 _groundTruthLocalTransform = localTransform;
134 void setMaxPoseTimeDiff(
double diff) {_maxPoseTimeDiff = diff;}
135 double getMaxPoseTimeDiff()
const {
return _maxPoseTimeDiff;}
137 void setDepth(
bool isDepth,
float depthScaleFactor = 1.0f)
140 _depthScaleFactor=depthScaleFactor;
144 virtual SensorData captureImage(SensorCaptureInfo * info = 0);
149 const std::string & lastImageFileName()
const {
return _lastImageFileName;}
153 std::string _calibrationFolder;
159 bool _multiCameraCalib;
160 int _multiCameraCount;
164 std::list<Transform> & outputPoses,
165 std::list<double> & stamps,
166 const std::string & filePath,
168 double maxTimeDiff)
const;
173 std::vector<CameraModel> loadMultiCameraModels(
const std::string & baseName)
const;
178 CameraModel loadConfigModel(
const std::string & filePath);
190 float _depthScaleFactor;
192 int _framesPublished;
194 std::string _lastFileName;
195 std::string _lastImageFileName;
199 std::string _lastScanFileName;
200 std::string _scanPath;
201 Transform _scanLocalTransform;
205 int _depthFromScanFillHoles;
206 bool _depthFromScanFillHolesFromBorder;
208 bool _filenamesAreTimestamps;
209 bool _hasConfigForEachFrame;
210 std::string _timestampsPath;
211 bool _syncImageRateWithStamps;
213 std::string _odometryPath;
215 std::string _groundTruthPath;
216 int _groundTruthFormat;
217 Transform _groundTruthLocalTransform;
218 double _maxPoseTimeDiff;
220 std::list<double> _stamps;
221 std::list<Transform> odometry_;
222 std::list<cv::Mat> covariances_;
223 std::list<Transform> groundTruth_;
225 std::list<std::string> _modelFileNames;
226 bool _configLocalTransformWarned;
227 std::vector<CameraModel> _multiModels;
230 double _captureDelay;