Subversion Repositories seema-scanner

Rev

Rev 176 | Rev 232 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 176 Rev 225
Line 1... Line 1...
1
#include "SMCalibrationParameters.h"
1
#include "SMCalibrationParameters.h"
2
 
2
 
3
 
3
 
-
 
4
void SMCalibrationParameters::printCamera(std::ostream &stream){
-
 
5
 
-
 
6
    stream << std::setprecision(6)
-
 
7
    << "Camera 0: " << std::endl
-
 
8
        << "\t focal length: \t[" << K0(0,0) << " " << K0(1,1) << "] "
-
 
9
            << "\t\t +/- [" << cam0_intrinsic_std[0] << " " << cam0_intrinsic_std[1] << "]" << std::endl
-
 
10
        << "\t central point: \t[" << K0(0,2) << " " << K0(1,2) << "] "
-
 
11
            << "\t\t +/- [" << cam0_intrinsic_std[2] << " " << cam0_intrinsic_std[3] << "]" << std::endl
-
 
12
        << "\t lens distortion: \t" << k0
-
 
13
            << "\t +/- [" << cam0_intrinsic_std[4] << " " << cam0_intrinsic_std[5] << " " << cam0_intrinsic_std[6] << " " << cam0_intrinsic_std[7] << " " << cam0_intrinsic_std[8] << "]" << std::endl
-
 
14
        << "\t reprojection errors: " << std::endl;
-
 
15
        for(unsigned int i=0; i<cam0_errors_per_view.size(); i++)
-
 
16
            stream << "\t\t\t" << cam0_errors_per_view[i] << " px" << std::endl;
-
 
17
 
-
 
18
    stream << "Camera 1: " << std::endl
-
 
19
        << "\t focal length: \t[" << K1(0,0) << " " << K1(1,1) << "] "
-
 
20
            << "\t\t +/- [" << cam1_intrinsic_std[0] << " " << cam1_intrinsic_std[1] << "]" << std::endl
-
 
21
        << "\t central point: \t[" << K1(0,2) << " " << K1(1,2) << "] "
-
 
22
            << "\t\t +/- [" << cam1_intrinsic_std[2] << " " << cam1_intrinsic_std[3] << "]" << std::endl
-
 
23
        << "\t lens distortion: \t" << k1
-
 
24
            << "\t +/- [" << cam1_intrinsic_std[4] << " " << cam1_intrinsic_std[5] << " " << cam1_intrinsic_std[6] << " " << cam1_intrinsic_std[7] << " " << cam1_intrinsic_std[8] << "]" << std::endl
-
 
25
        << "\t reprojection errors: " << std::endl;
-
 
26
        for(unsigned int i=0; i<cam1_errors_per_view.size(); i++)
-
 
27
            stream << "\t\t\t" << cam1_errors_per_view[i] << " px" << std::endl;
-
 
28
 
-
 
29
    stream << "Stereo Parameters: " << std::endl
-
 
30
        << "\t rotation: \t\t[" << R1(0,0) << " " << R1(0,1) << " " << R1(0,2) << "; "
-
 
31
            << R1(1,0) << " " << R1(1,1) << " " << R1(1,2) << " "
-
 
32
            << R1(2,0) << " " << R1(2,1) << " " << R1(2,2) << "]" << std::endl
-
 
33
        << "\t translation: \t[" << T1(0) << T1(1) << " " << T1(2) << std::endl
-
 
34
        << "\t reprojection error: \n\t\t\t" << stereo_error << " px" << std::endl;
-
 
35
}
-
 
36
 
-
 
37
void SMCalibrationParameters::printRotationStage(std::ostream &stream){
-
 
38
 
-
 
39
    stream << std::setprecision(6)
-
 
40
    << "Parameters: " << std::endl
-
 
41
        << "\t rotation: \t [" << Rr(0,0) << Rr(0,1) << " " << Rr(0,2) << "; "
-
 
42
            << Rr(1,0) << " " << Rr(1,1) << " " << Rr(1,2) << " "
-
 
43
            << Rr(2,0) << " " << Rr(2,1) << " " << Rr(2,2) << " " << std::endl
-
 
44
        << "\t translation: \t[" << Tr(0) << " " << Tr(1) << " " << Tr(2) << "]" << std::endl
-
 
45
        << "\t error: \n\t\t\t" << rot_axis_error << " mm" << std::endl;
-
 
46
}
-
 
47
 
4
void SMCalibrationParameters::print(){
48
void SMCalibrationParameters::print(std::ostream &stream){
-
 
49
 
-
 
50
    printCamera(stream);
-
 
51
    printRotationStage(stream);
5
 
52
 
6
    std::cout << "Calibration Parameters:" << std::endl;
-
 
7
    std::cout << "K0: " << std::endl;
-
 
8
    std::cout << K0 << std::endl;
-
 
9
    std::cout << "k0: " << std::endl;
-
 
10
    std::cout << k0 << std::endl;
-
 
11
    std::cout << "K1: " << std::endl;
-
 
12
    std::cout << K1 << std::endl;
-
 
13
    std::cout << "k1: " << std::endl;
-
 
14
    std::cout << k1 << std::endl;
-
 
15
    std::cout << "R1: " << std::endl;
-
 
16
    std::cout << R1 << std::endl;
-
 
17
    std::cout << "T1: " << std::endl;
-
 
18
    std::cout << T1 << std::endl;
-
 
19
    std::cout << "Rr: " << std::endl;
-
 
20
    std::cout << Rr << std::endl;
-
 
21
    std::cout << "Tr: " << std::endl;
-
 
22
    std::cout << Tr << std::endl;
-
 
23
    std::cout << "cam0_error: " << std::endl;
-
 
24
    std::cout << cam0_error << " px" << std::endl;
-
 
25
    std::cout << "cam0_errors_per_view: " << std::endl;
-
 
26
    for(unsigned int i=0; i<cam0_errors_per_view.size(); i++)
-
 
27
        std::cout << "\t" << cam0_errors_per_view[i] << std::endl;
-
 
28
    std::cout << "cam1_error: " << std::endl;
-
 
29
    std::cout << cam1_error << " px" << std::endl;
-
 
30
    std::cout << "cam1_errors_per_view: " << std::endl;
-
 
31
    for(unsigned int i=0; i<cam1_errors_per_view.size(); i++)
-
 
32
        std::cout << "\t" << cam1_errors_per_view[i] << std::endl;
-
 
33
    std::cout << "stereo_error: " << std::endl;
-
 
34
    std::cout << stereo_error << " px" << std::endl;
-
 
35
    std::cout << "rot_axis_error: " << std::endl;
-
 
36
    std::cout << rot_axis_error << " mm" << std::endl;
-
 
37
}
53
}
38
 
54
 
39
void SMCalibrationParameters::exportToXML(QString fileName){
55
void SMCalibrationParameters::exportToXML(QString fileName){
40
 
56
 
41
    cv::FileStorage fs(fileName.toStdString(), cv::FileStorage::WRITE);
57
    cv::FileStorage fs(fileName.toStdString(), cv::FileStorage::WRITE);
Line 77... Line 93...
77
    fs.release();
93
    fs.release();
78
}
94
}
79
 
95
 
80
// QStreamtypes for qDebug() and QSettings
96
// QStreamtypes for qDebug() and QSettings
81
QDataStream& operator>>(QDataStream& in, SMCalibrationParameters& data){
97
QDataStream& operator>>(QDataStream& in, SMCalibrationParameters& data){
82
//    std::cout << "Deserializing calibration parameters!" << std::endl;
98
//    stream << "Deserializing calibration parameters!" << std::endl;
83
    in >> data.K0(0,0) >> data.K0(0,1) >> data.K0(0,2) >> data.K0(1,0) >> data.K0(1,1) >> data.K0(1,2) >> data.K0(2,0) >> data.K0(2,1) >> data.K0(2,2);
99
    in >> data.K0(0,0) >> data.K0(0,1) >> data.K0(0,2) >> data.K0(1,0) >> data.K0(1,1) >> data.K0(1,2) >> data.K0(2,0) >> data.K0(2,1) >> data.K0(2,2);
84
    in >> data.k0(0) >> data.k0(1) >> data.k0(2) >> data.k0(3) >> data.k0(4);
100
    in >> data.k0(0) >> data.k0(1) >> data.k0(2) >> data.k0(3) >> data.k0(4);
85
    in >> data.cam0_error;
101
    in >> data.cam0_error;
86
 
102
 
87
    in >> data.K1(0,0) >> data.K1(0,1) >> data.K1(0,2) >> data.K1(1,0) >> data.K1(1,1) >> data.K1(1,2) >> data.K1(2,0) >> data.K1(2,1) >> data.K1(2,2);
103
    in >> data.K1(0,0) >> data.K1(0,1) >> data.K1(0,2) >> data.K1(1,0) >> data.K1(1,1) >> data.K1(1,2) >> data.K1(2,0) >> data.K1(2,1) >> data.K1(2,2);
Line 101... Line 117...
101
 
117
 
102
    return in;
118
    return in;
103
}
119
}
104
 
120
 
105
QDataStream& operator<<(QDataStream& out, const SMCalibrationParameters& data){
121
QDataStream& operator<<(QDataStream& out, const SMCalibrationParameters& data){
106
//    std::cout << "Serializing calibration parameters!" << std::endl;
122
//    stream << "Serializing calibration parameters!" << std::endl;
107
    out << data.K0(0,0) << data.K0(0,1) << data.K0(0,2) << data.K0(1,0) << data.K0(1,1) << data.K0(1,2) << data.K0(2,0) << data.K0(2,1) << data.K0(2,2);
123
    out << data.K0(0,0) << data.K0(0,1) << data.K0(0,2) << data.K0(1,0) << data.K0(1,1) << data.K0(1,2) << data.K0(2,0) << data.K0(2,1) << data.K0(2,2);
108
    out << data.k0(0) << data.k0(1) << data.k0(2) << data.k0(3) << data.k0(4);
124
    out << data.k0(0) << data.k0(1) << data.k0(2) << data.k0(3) << data.k0(4);
109
    out << data.cam0_error;
125
    out << data.cam0_error;
110
 
126
 
111
    out << data.K1(0,0) << data.K1(0,1) << data.K1(0,2) << data.K1(1,0) << data.K1(1,1) << data.K1(1,2) << data.K1(2,0) << data.K1(2,1) << data.K1(2,2);
127
    out << data.K1(0,0) << data.K1(0,1) << data.K1(0,2) << data.K1(1,0) << data.K1(1,1) << data.K1(1,2) << data.K1(2,0) << data.K1(2,1) << data.K1(2,2);