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