-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArgsParser.h
executable file
·74 lines (68 loc) · 2.25 KB
/
ArgsParser.h
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
#ifndef __ARGSPARSER_H__
#define __ARGSPARSER_H__
#include <vector>
#include <string>
struct Calib
{
float cam0[3][3];
float cam1[3][3];
float doffs;
float baseline;
int width;
int height;
int ndisp;
int isint;
int vmin;
int vmax;
float dyavg;
float dymax;
// ----------- format of calib.txt ----------
//cam0 = [2852.758 0 1424.085; 0 2852.758 953.053; 0 0 1]
//cam1 = [2852.758 0 1549.445; 0 2852.758 953.053; 0 0 1]
//doffs = 125.36
//baseline = 178.089
//width = 2828
//height = 1924
//ndisp = 260
//isint = 0
//vmin = 36
//vmax = 218
//dyavg = 0.408
//dymax = 1.923
Calib()
: doffs(0)
, baseline(0)
, width(0)
, height(0)
, ndisp(0)
, isint(0)
, vmin(0)
, vmax(0)
, dyavg(0)
, dymax(0)
{
}
Calib(std::string filename)
: Calib()
{
FILE* fp = fopen(filename.c_str(), "r");
char buff[512];
if (fp != nullptr)
{
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "cam0 = [%f %f %f; %f %f %f; %f %f %f]\n", &cam0[0][0], &cam0[0][1], &cam0[0][2], &cam0[1][0], &cam0[1][1], &cam0[1][2], &cam0[2][0], &cam0[2][1], &cam0[2][2]);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "cam1 = [%f %f %f; %f %f %f; %f %f %f]\n", &cam1[0][0], &cam1[0][1], &cam1[0][2], &cam1[1][0], &cam1[1][1], &cam1[1][2], &cam1[2][0], &cam1[2][1], &cam1[2][2]);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "doffs = %f\n", &doffs);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "baseline = %f\n", &baseline);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "width = %d\n", &width);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "height = %d\n", &height);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "ndisp = %d\n", &ndisp);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "isint = %d\n", &isint);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "vmin = %d\n", &vmin);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "vmax = %d\n", &vmax);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "dyavg = %f\n", &dyavg);
if (fgets(buff, sizeof(buff), fp) != nullptr) sscanf(buff, "dymax = %f\n", &dymax);
fclose(fp);
}
}
};
#endif