Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Calibration
DLTCalibration.h
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: DLTCalibration.h
37
// Author: Pedram Azad
38
// Date: 04.12.2009
39
// ****************************************************************************
40
41
42
#ifndef _DLT_CALIBRATION_H_
43
#define _DLT_CALIBRATION_H_
44
45
46
// ****************************************************************************
47
// Necessary includes
48
// ****************************************************************************
49
50
#include "
Math/Math2d.h
"
51
#include "
Math/Math3d.h
"
52
53
54
// ****************************************************************************
55
// Forward declarations
56
// ****************************************************************************
57
58
class
CCalibration
;
59
60
61
62
// ****************************************************************************
63
// CDLTCalibration
64
// ****************************************************************************
65
66
class
CDLTCalibration
67
{
68
public
:
69
// enums
70
enum
DistortionType
71
{
72
eNoDistortion
,
73
eRadialDistortion
,
74
eRadialAndTangentialDistortion
75
};
76
77
// structs
78
struct
PairElement
79
{
80
Vec3d
worldPoint
;
81
Vec2d
imagePoint
;
82
};
83
84
// constructor
85
CDLTCalibration
();
86
87
// destructor
88
~CDLTCalibration
();
89
90
91
// public methods
92
// Parameter: nIterations (recommendations)
93
// nCalculateDistortionParameters = 0: nIterations not used
94
// nCalculateDistortionParameters = 1: nIterations > 500
95
// nCalculateDistortionParameters = 2: nIterations > 1000
96
float
Calibrate
(
const
PairElement
*pPairElements,
int
nPairElements,
CCalibration
&resultCalibration,
DistortionType
eCalculateDistortionParameters =
eNoDistortion
,
int
nIterations = 1000);
97
98
// camera transformations (2D <=> 3D)
99
void
GetImageCoordinatesDLT
(
const
Vec3d
&
worldPoint
,
Vec2d
&
imagePoint
);
100
101
float
CheckCalibration
(
const
CCalibration
&calibration);
102
103
104
105
private
:
106
// private methods
107
void
CalculateDLT
(
const
CCalibration
&calibration,
bool
bFirstCall);
108
void
ExtractFromDLT
(
CCalibration
&calibration);
109
void
CalculateRadialLensDistortion
(
CCalibration
&calibration);
110
void
CalculateRadialAndTangentialLensDistortion
(
CCalibration
&calibration);
111
float
CheckDLT
();
112
113
114
// private attributes
115
float
L1
,
L2
,
L3
,
L4
,
L5
,
L6
,
L7
,
L8
,
L9
,
L10
,
L11
;
116
117
const
PairElement
*
m_pPairElements
;
118
int
m_nPairElements
;
119
};
120
121
122
123
#endif
/* _DLT_CALIBRATION_H_ */
CDLTCalibration::L2
float L2
Definition:
DLTCalibration.h:115
CDLTCalibration::DistortionType
DistortionType
Definition:
DLTCalibration.h:70
CDLTCalibration::CalculateDLT
void CalculateDLT(const CCalibration &calibration, bool bFirstCall)
Definition:
DLTCalibration.cpp:292
CDLTCalibration::L11
float L11
Definition:
DLTCalibration.h:115
CDLTCalibration::L9
float L9
Definition:
DLTCalibration.h:115
CDLTCalibration
Definition:
DLTCalibration.h:66
Vec3d
Data structure for the representation of a 3D vector.
Definition:
Math3d.h:73
CDLTCalibration::L1
float L1
Definition:
DLTCalibration.h:115
Math2d.h
CDLTCalibration::CDLTCalibration
CDLTCalibration()
Definition:
DLTCalibration.cpp:64
CDLTCalibration::CalculateRadialLensDistortion
void CalculateRadialLensDistortion(CCalibration &calibration)
Definition:
DLTCalibration.cpp:161
CDLTCalibration::m_pPairElements
const PairElement * m_pPairElements
Definition:
DLTCalibration.h:117
CDLTCalibration::L8
float L8
Definition:
DLTCalibration.h:115
CDLTCalibration::CheckCalibration
float CheckCalibration(const CCalibration &calibration)
Definition:
DLTCalibration.cpp:123
CDLTCalibration::L7
float L7
Definition:
DLTCalibration.h:115
CDLTCalibration::eRadialDistortion
Definition:
DLTCalibration.h:73
CDLTCalibration::ExtractFromDLT
void ExtractFromDLT(CCalibration &calibration)
Definition:
DLTCalibration.cpp:251
CDLTCalibration::~CDLTCalibration
~CDLTCalibration()
Definition:
DLTCalibration.cpp:73
CDLTCalibration::CalculateRadialAndTangentialLensDistortion
void CalculateRadialAndTangentialLensDistortion(CCalibration &calibration)
Definition:
DLTCalibration.cpp:204
CDLTCalibration::L4
float L4
Definition:
DLTCalibration.h:115
CDLTCalibration::PairElement::imagePoint
Vec2d imagePoint
Definition:
DLTCalibration.h:81
CDLTCalibration::CheckDLT
float CheckDLT()
Definition:
DLTCalibration.cpp:145
CDLTCalibration::GetImageCoordinatesDLT
void GetImageCoordinatesDLT(const Vec3d &worldPoint, Vec2d &imagePoint)
Definition:
DLTCalibration.cpp:112
CDLTCalibration::PairElement
Definition:
DLTCalibration.h:78
CDLTCalibration::eRadialAndTangentialDistortion
Definition:
DLTCalibration.h:74
CDLTCalibration::L5
float L5
Definition:
DLTCalibration.h:115
CDLTCalibration::Calibrate
float Calibrate(const PairElement *pPairElements, int nPairElements, CCalibration &resultCalibration, DistortionType eCalculateDistortionParameters=eNoDistortion, int nIterations=1000)
Definition:
DLTCalibration.cpp:82
Vec2d
Data structure for the representation of a 2D vector.
Definition:
Math2d.h:82
CDLTCalibration::eNoDistortion
Definition:
DLTCalibration.h:72
CDLTCalibration::L6
float L6
Definition:
DLTCalibration.h:115
CDLTCalibration::PairElement::worldPoint
Vec3d worldPoint
Definition:
DLTCalibration.h:80
Math3d.h
CCalibration
Camera model parameters and functions for a single camera.
Definition:
Calibration.h:125
CDLTCalibration::L10
float L10
Definition:
DLTCalibration.h:115
CDLTCalibration::m_nPairElements
int m_nPairElements
Definition:
DLTCalibration.h:118
CDLTCalibration::L3
float L3
Definition:
DLTCalibration.h:115
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:27