Subversion Repositories seema-scanner

Rev

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


#ifndef SMTriangulator_H
#define SMTriangulator_H

#include "SMTypes.h"

#include <QObject>
#include <QTime>

#include <opencv2/opencv.hpp>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>

class SMTriangulator : public QObject {
    Q_OBJECT

    public:
        SMTriangulator();
        ~SMTriangulator();
        void triangulateFromUp(cv::Mat &up, cv::Mat &xyz);
        void triangulateFromVp(cv::Mat &vp, cv::Mat &xyz);
        void triangulateFromUpVp(cv::Mat &up, cv::Mat &vp, cv::Mat &xyz);
        void triangulate(cv::Mat &up, cv::Mat &vp, cv::Mat &mask, cv::Mat &shading, cv::Mat &pointCloud);

    public slots:
        void triangulatePointCloud(cv::Mat up, cv::Mat vp, cv::Mat mask, cv::Mat shading);
    signals:
        void imshow(const char* windowName, cv::Mat mat, unsigned int x, unsigned int y);
        void newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::Ptr pointCloud);
        void error(QString err);
        //void finished();
    private:
        CalibrationParameters calibration;

        QTime time;

        cv::Mat determinantTensor;
        cv::Mat uc, vc;
        cv::Mat lensMap1, lensMap2;
};

#endif