Subversion Repositories seema-scanner

Rev

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

Rev 24 Rev 25
Line 1... Line -...
1
/*
-
 
2
 *
-
 
3
 SLStudio - Platform for Real-Time  Structured Light
-
 
4
 (c) 2013 -- 2014 Jakob Wilm, DTU, Kgs.Lyngby, Denmark
-
 
5
 *
-
 
6
*/
-
 
7
 
1
 
8
#ifndef SMTriangulator_H
2
#ifndef SMTriangulator_H
9
#define SMTriangulator_H
3
#define SMTriangulator_H
10
 
4
 
-
 
5
#include "SMTypes.h"
-
 
6
 
11
#include <QObject>
7
#include <QObject>
12
#include <QTime>
8
#include <QTime>
13
 
9
 
14
#include "SMCalibrationParams.h"
-
 
15
#include "Triangulator.h"
10
#include <opencv2/opencv.hpp>
16
 
-
 
17
#include <pcl/point_cloud.h>
11
#include <pcl/point_cloud.h>
18
#include <pcl/point_types.h>
12
#include <pcl/point_types.h>
19
 
13
 
20
class SMTriangulator : public QObject {
14
class SMTriangulator : public QObject {
21
    Q_OBJECT
15
    Q_OBJECT
22
 
16
 
23
    public:
17
    public:
24
        SMTriangulator(unsigned int _frameWidth, unsigned int _frameHeight) : frameWidth(_frameWidth), frameHeight(_frameHeight), writeToDisk(false){}
18
        SMTriangulator();
25
        ~SMTriangulator();
19
        ~SMTriangulator();
26
        void triangulateFromUp(cv::Mat &up, cv::Mat &xyz);
20
        void triangulateFromUp(cv::Mat &up, cv::Mat &xyz);
27
        void triangulateFromVp(cv::Mat &vp, cv::Mat &xyz);
21
        void triangulateFromVp(cv::Mat &vp, cv::Mat &xyz);
28
        void triangulateFromUpVp(cv::Mat &up, cv::Mat &vp, cv::Mat &xyz);
22
        void triangulateFromUpVp(cv::Mat &up, cv::Mat &vp, cv::Mat &xyz);
29
        void triangulate(cv::Mat &up, cv::Mat &vp, cv::Mat &mask, cv::Mat &shading, cv::Mat &pointCloud);
23
        void triangulate(cv::Mat &up, cv::Mat &vp, cv::Mat &mask, cv::Mat &shading, cv::Mat &pointCloud);
30
 
24
 
31
    public slots:
25
    public slots:
32
        void setup();
-
 
33
        void triangulatePointCloud(cv::Mat up, cv::Mat vp, cv::Mat mask, cv::Mat shading);
26
        void triangulatePointCloud(cv::Mat up, cv::Mat vp, cv::Mat mask, cv::Mat shading);
34
    signals:
27
    signals:
35
        void imshow(const char* windowName, cv::Mat mat, unsigned int x, unsigned int y);
28
        void imshow(const char* windowName, cv::Mat mat, unsigned int x, unsigned int y);
36
        void newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::Ptr pointCloud);
29
        void newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::Ptr pointCloud);
37
        void error(QString err);
30
        void error(QString err);
38
        //void finished();
31
        //void finished();
39
    private:
32
    private:
40
        unsigned int frameWidth, frameHeight;
-
 
41
        bool writeToDisk;
-
 
42
        SMCalibrationParams *calibration;
33
        CalibrationParameters calibration;
43
        Triangulator *triangulator;
-
 
-
 
34
 
44
        QTime time;
35
        QTime time;
45
        SMCalibrationParams calibration;
-
 
-
 
36
 
46
        cv::Mat determinantTensor;
37
        cv::Mat determinantTensor;
47
        cv::Mat uc, vc;
38
        cv::Mat uc, vc;
48
        cv::Mat lensMap1, lensMap2;
39
        cv::Mat lensMap1, lensMap2;
49
};
40
};
50
 
41