-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalibrate_example.cpp
More file actions
executable file
·85 lines (74 loc) · 3.21 KB
/
calibrate_example.cpp
File metadata and controls
executable file
·85 lines (74 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <string>
#include "opencv2/opencv.hpp"
#include "camera_system_calibration.h"
using namespace std;
using namespace cv;
namespace
{
const char* about = "This program calibrates a camera system using videos of ChArUco board\n";
const char* keys =
"{help h ?||Print help message}"
"{@output|<none>|Output folder storing calibration results}"
"{@config|<none>|Input file storing calibration configurations}"
"{@aruco|<none>|Input file storing ArUco detector parameters}"
"{mono monoFileName||Input file storing mono calibration results}"
"{ph usePhoto||Use photos for calibration instead of videos}";
}
int main ( int argc, char** argv )
{
CommandLineParser parser ( argc, argv, keys );
parser.about ( about );
if ( parser.has ( "help" ) || argc < 3 )
{
parser.printMessage();
return 0;
}
string output_folder = parser.get<string> ( "@output" );
string config_file_name = parser.get<string> ( "@config" );
string detector_file_name = parser.get<string> ( "@aruco" );
bool mono_calibration_used = parser.has ( "mono" );
string mono_file_name = parser.get<string> ( "monoFileName" );
bool use_photo = parser.has ( "usePhoto" );
if ( !parser.check() )
{
parser.printErrors();
return 0;
}
if ( !use_photo )
{
CameraSystemCalibration camera_system_calibration;
if ( mono_calibration_used )
{
camera_system_calibration.LoadCalibrationWithVideoAndMono ( output_folder, config_file_name, detector_file_name, mono_file_name, false );;
camera_system_calibration.ExtractFramesAndCorners();
}
else
{
camera_system_calibration.LoadCalibrationWithVideo ( output_folder, config_file_name, detector_file_name, false );
camera_system_calibration.ExtractFramesAndCorners();
}
camera_system_calibration.Calibrate();
camera_system_calibration.SaveResultsCombined();
camera_system_calibration.SaveInterCameraExtrinsics();
camera_system_calibration.SaveIntrinsics();
// CameraSystemCalibration camera_system_calibration ( output_folder, config_file_name, detector_file_name, mono_file_name, mono_calibration_used, false );
// camera_system_calibration.FetchCornersInFrames();
// camera_system_calibration.Calibrate();
// camera_system_calibration.SaveResults();
// camera_system_calibration.SaveResults2();
}
else
{
CameraSystemCalibration camera_system_calibration;
camera_system_calibration.LoadCalibrationWithPhotos ( output_folder, config_file_name, detector_file_name, false );
camera_system_calibration.Calibrate();
camera_system_calibration.SaveResultsCombined();
camera_system_calibration.SaveInterCameraExtrinsics();
camera_system_calibration.SaveIntrinsics();
// CameraSystemCalibration camera_system_calibration ( output_folder, config_file_name, detector_file_name, false );
// camera_system_calibration.FetchCornersInPhotos();
// camera_system_calibration.Calibrate();
// camera_system_calibration.SaveIntrinsics();
// camera_system_calibration.SaveInterCameraExtrinsics();
}
}