Rev 25 | Rev 36 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef SMReconstructionWorker_H
#define SMReconstructionWorker_H
#include "SMTypes.h"
#include "SMCalibrationParameters.h"
#include "Codec.h"
#include <QObject>
#include <QTime>
#include <opencv2/opencv.hpp>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
class SMReconstructionWorker : public QObject {
Q_OBJECT
public:
SMReconstructionWorker(){}
~SMReconstructionWorker(){}
public slots:
void setup();
void reconstructPointCloud(SMFrameSequence frameSequence);
void reconstructPointClouds(std::vector<SMFrameSequence> frameSequences);
signals:
void newPointCloud(pcl::PointCloud<pcl::PointXYZRGB>::Ptr pointCloud);
void error(QString err);
void done();
private:
void triangulateFromUp(cv::Mat up0, cv::Mat mask0,cv::Mat up1, cv::Mat mask1,cv::Mat &xyz);
void triangulateFromVp(cv::Mat vp0, cv::Mat mask0, cv::Mat vp1, cv::Mat mask1, cv::Mat &xyz);
void triangulateFromUpVp(cv::Mat up0, cv::Mat vp0, cv::Mat mask0, cv::Mat up1, cv::Mat vp1, cv::Mat mask1, cv::Mat &xyz);
private:
SMCalibrationParameters calibration;
CodecDir dir;
QTime time;
Decoder *decoder;
cv::Mat lensMap0Horz, lensMap0Vert, lensMap1Horz, lensMap1Vert;
};
#endif