Subversion Repositories seema-scanner

Rev

Rev 39 | Rev 42 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 39 Rev 41
Line 1... Line 1...
1
#ifndef CODEC_H
1
#ifndef CODEC_H
2
#define CODEC_H
2
#define CODEC_H
3
 
3
 
4
#include <vector>
4
#include <vector>
5
#include <opencv2/opencv.hpp>
5
#include <opencv2/opencv.hpp>
6
#include "SMTypes.h"
6
#include "SMCalibrationParameters.h"
7
 
7
 
8
enum CodingDir {CodingDirNone = 0,
8
enum CodingDir {CodingDirNone = 0,
9
               CodingDirHorizontal = 1 << 0,
9
               CodingDirHorizontal = 1 << 0,
10
               CodingDirVertical = 1 << 1,
10
               CodingDirVertical = 1 << 1,
11
               CodingDirBoth = CodingDirHorizontal | CodingDirVertical};
11
               CodingDirBoth = CodingDirHorizontal | CodingDirVertical};
12
 
12
 
13
// Base class for all Algorithms
13
// Base class for all Algorithms
14
class Algorithm {
14
class Algorithm {
15
    public:
15
    public:
16
        Algorithm(unsigned int _screenCols, unsigned int _screenRows, CodingDir _dir = CodingDirHorizontal) : N(0),screenCols(_screenCols), screenRows(_screenRows),  dir(_dir){}
16
        Algorithm(unsigned int _screenCols, unsigned int _screenRows, CodingDir _dir = CodingDirHorizontal) : N(0), screenCols(_screenCols), screenRows(_screenRows),  dir(_dir){}
-
 
17
    virtual ~Algorithm(){}
17
        unsigned int getNPatterns(){return N;}
18
        unsigned int getNPatterns(){return N;}
-
 
19
        int getscreenCols(){return screenCols;}
-
 
20
        int getscreenRows(){return screenRows;}
18
        CodingDir getDir(){return dir;}
21
        CodingDir getDir(){return dir;}
19
        // Encoding
22
        // Encoding
20
        virtual cv::Mat getEncodingPattern(unsigned int depth) = 0;
23
        virtual cv::Mat getEncodingPattern(unsigned int depth) = 0;
21
        virtual ~Algorithm(){}
24
        // Matching
-
 
25
        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;
22
    protected:
26
    protected:
23
        unsigned int N;
27
        unsigned int N;
24
        unsigned int screenCols, screenRows;
28
        unsigned int screenCols, screenRows;
25
        CodingDir dir;
29
        CodingDir dir;
26
};
30
};
27
 
31
 
28
class Algorithm {
-
 
29
    public:
-
 
30
        Algorithm(CodingDir _dir, int _screenCols, int _screenRows) : dir(_dir), screenCols(_screenCols), screenRows(_screenRows){}
-
 
31
        CodingDir getDir(){return dir;}
-
 
32
        int getscreenCols(){return screenCols;}
-
 
33
        int getscreenRows(){return screenRows;}
-
 
34
        // Decoding
-
 
35
        virtual void getCorrespondences(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;
-
 
36
        virtual ~Algorithm(){}
-
 
37
    protected:
-
 
38
        CodingDir dir;
-
 
39
        int screenCols, screenRows;
-
 
40
};
-
 
41
 
32
 
42
#endif // CODEC_H
33
#endif // CODEC_H