Rev 39 | Rev 42 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef CODEC_H
#define CODEC_H
#include <vector>
#include <opencv2/opencv.hpp>
#include "SMCalibrationParameters.h"
enum CodingDir {CodingDirNone = 0,
CodingDirHorizontal = 1 << 0,
CodingDirVertical = 1 << 1,
CodingDirBoth = CodingDirHorizontal | CodingDirVertical};
// Base class for all Algorithms
class Algorithm {
public:
Algorithm(unsigned int _screenCols, unsigned int _screenRows, CodingDir _dir = CodingDirHorizontal) : N(0), screenCols(_screenCols), screenRows(_screenRows), dir(_dir){}
virtual ~Algorithm(){}
unsigned int getNPatterns(){return N;}
int getscreenCols(){return screenCols;}
int getscreenRows(){return screenRows;}
CodingDir getDir(){return dir;}
// Encoding
virtual cv::Mat getEncodingPattern(unsigned int depth) = 0;
// Matching
virtual void getCorrespondences(SMCalibrationParameters calibration, const std::vector<cv::Mat>& frames0, const std::vector<cv::Mat>& frames1, std::vector<cv::Point2f>& q0, std::vector<cv::Point2f>& q1, std::vector<cv::Point3f>& color) = 0;
protected:
unsigned int N;
unsigned int screenCols, screenRows;
CodingDir dir;
};
#endif // CODEC_H