Rev 78 | Rev 225 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#ifndef SMCalibrationWorker_H
#define SMCalibrationWorker_H
#include <QObject>
#include "SMTypes.h"
// fwd decl
class SMCalibrationParameters;
namespace Ui {
class SMCalibrationWorker;
}
class SMCalibrationWorker : public QObject{
Q_OBJECT
public:
SMCalibrationWorker(){}
~SMCalibrationWorker(){}
void performStageCalibration(
const std::vector< std::vector<cv::Point2f> > &qc0Stereo,
const std::vector< std::vector<cv::Point2f> > &qc1Stereo,
SMCalibrationParameters& cal);
public slots:
void performCameraCalibration(std::vector< SMCalibrationSet > calibrationData);
private slots:
signals:
void newFrameResult(int idx, int camID, bool success, cv::Mat frameResult);
void newSetProcessed(int idx);
void done();
private:
void perViewReprojError(const std::vector<bool> &success0,
const std::vector< std::vector<cv::Point3f> > &Q0,
const std::vector<cv::Mat> &cam_tvecs0,
const std::vector<cv::Mat> &cam_rvecs0,
const std::vector< std::vector<cv::Point2f> > &qc0,
const cv::Matx33f &K0,
const cv::Vec<float, 5> &k0,
std::vector<float> &camX_errors_per_view);
std::vector<cv::Point3f> generateObjCoordsInWorldCS(const cv::Size checkerCount, const float checkerSize);
};
#endif // SMCalibrationWorker_H