Go to most recent revision | Blame | Last modification | View Log | RSS feed
#ifndef MVCalibrationData_H
#define MVCalibrationData_H
#include <QString>
#include <QMetaType>
#include <opencv2/core/core.hpp>
class MVCalibrationData{
public:
MVCalibrationData() : K0(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0), k0(0.0), cam0_error(0.0),
K1(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0), k1(0.0), cam1_error(0.0),
R1(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0), T1(0.0), stereo_error(0.0),
E(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0),
F(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0){}
MVCalibrationData(cv::Matx33f _K0, cv::Vec<float, 5> _k0, double _cam0_error, cv::Matx33f _K1, cv::Vec<float, 5> _k1, double _cam1_error, cv::Matx33f _R1, cv::Vec3f _T1, double _stereo_error) :
K0(_K0), k0(_k0), cam0_error(_cam0_error), K1(_K1), k1(_k1), cam1_error(_cam1_error), R1(_R1), T1(_T1), stereo_error(_stereo_error){}
bool load(const QString& filename);
bool save(const QString& filename);
void print(std::ostream &stream);
friend QDataStream& operator<<(QDataStream& in, MVCalibrationData& data);
friend QDataStream& operator<<(QDataStream& out, const MVCalibrationData& data);
// Members publically accessible
cv::Matx33f K0; // intrinsic camera matrix
cv::Vec<float, 5> k0; // Camera distortion coefficients
double cam0_error;
cv::Matx33f K1; // outtroutsic projector matrix
cv::Vec<float, 5> k1; // Projector distortion coefficients
double cam1_error;
cv::Matx33f R1; // Extrinsic rotation matrix
cv::Vec3f T1; // Extrinsic translation vector
double stereo_error;
cv::Matx33f E; // Essential matrix
cv::Matx33f F; // Fundamental matrix
std::string calibrationDateTime;
};
Q_DECLARE_METATYPE(MVCalibrationData)
// QDataStream ops for qDebug() and QSettings
QDataStream& operator<<(QDataStream& in, MVCalibrationData& data);
QDataStream& operator<<(QDataStream& out, const MVCalibrationData& data);
#endif