Subversion Repositories seema-scanner

Rev

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

/*
 *
 SLStudio - Platform for Real-Time  Structured Light
 (c) 2013 -- 2014 Jakob Wilm, DTU, Kgs.Lyngby, Denmark
 *
*/

#ifndef SMTriangulationWorker_H
#define SMTriangulationWorker_H

#include <QObject>
#include <QTime>

#include "SMCalibrationParams.h"
#include "Triangulator.h"

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>

class SMTriangulationWorker : public QObject {
    Q_OBJECT

    public:
        SMTriangulationWorker(unsigned int _frameWidth, unsigned int _frameHeight) : frameWidth(_frameWidth), frameHeight(_frameHeight), writeToDisk(false){}
        ~SMTriangulationWorker();
    public slots:
        void setup();
        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:
        unsigned int frameWidth, frameHeight;
        bool writeToDisk;
        SMCalibrationParams *calibration;
        Triangulator *triangulator;
        QTime time;
};

#endif