summaryrefslogtreecommitdiff
path: root/src/vision.h
blob: 90227cc4e27a237019a62dcddbdc25af62dd2310 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef  vision_INC
#define  vision_INC
#include <opencv2/opencv.hpp>
#include <Eigen/Dense>
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <vector>

#include "camera.h"
#include "types.h"
using cv::Mat;
using cv::RotatedRect;
using cv::Rect;
using Eigen::Vector2d;
using Eigen::Vector3d;
using Eigen::Matrix;
using std::vector;

/*
 * =====================================================================================
 *        Class:  Vision
 *  Description:  
 * =====================================================================================
 */
class Vision
{
    public:
        /* ====================  LIFECYCLE     ======================================= */
        Vision ();                             /* constructor */

        /* ====================  ACCESSORS     ======================================= */
        void drawMeasurements( const vector<measurement_t> &z, const Camera &cam,
                const cv::Scalar &colsrc, const cv::Scalar &colref,
                bool drawEllipse);

        void show();

        /* ====================  MUTATORS      ======================================= */

        /* ====================  OPERATORS     ======================================= */
        void open(const char *fn, const Camera &cam);
        void acquireFeatures(const Camera &cam, vector<measurement_t> &z,
                const vector<measurement_t> &curz);
        void getTemplate( Mat &p, const Vector3d &pt);
        void measure( const Camera &cam, const measurement_t &zin, measurement_t &zout);
        void measurements( const Camera &cam, const vector<measurement_t> &zin,
                vector<measurement_t> &zout);
        void searchRegion( const Camera &cam, const measurement_t &z, cv::RotatedRect &rr);

    protected:
        /* ====================  METHODS       ======================================= */

        /* ====================  DATA MEMBERS  ======================================= */

    private:
        /* ====================  METHODS       ======================================= */

        /* ====================  DATA MEMBERS  ======================================= */
        Mat original, gray, display;
        static int _id;

}; /* -----  end of class Vision  ----- */

#endif   /* ----- #ifndef vision_INC  ----- */