Subversion Repositories seema-scanner

Rev

Rev 27 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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