Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
algo
thermal-loop
l500-thermal-loop.h
Go to the documentation of this file.
1
// License: Apache 2.0. See LICENSE file in root directory.
2
// Copyright(c) 2020 Intel Corporation. All Rights Reserved.
3
4
#pragma once
5
6
#include <vector>
7
#include "../../types.h"
8
#include "
thermal-calibration-table-interface.h
"
9
10
namespace
librealsense
{
11
namespace
algo
{
12
namespace
thermal_loop {
13
namespace
l500 {
14
15
16
// RGB_Thermal_Info_CalibInfo table
17
// -----------------------------------
18
//
19
// The table contains equally spaced bins between min & max temperature.
20
//
21
// Each bin has a set of 4 transformation parameters. The transformation maps a point in the RGB
22
// image in a given temperature to its expected location in the temperature in which the RGB module
23
// was calibrated.
24
//
25
// Reference at:
26
// https://rsconf.intel.com/display/L500/0x317+RGB+Thermal+Table
27
//
28
#pragma pack( push, 1 )
29
class
thermal_calibration_table
:
public
thermal_calibration_table_interface
30
{
31
public
:
32
static
const
int
id
;
33
34
// The header as it's written raw
35
struct
thermal_table_header
36
{
37
float
min_temp
;
38
float
max_temp
;
39
float
reference_temp
;
// Reference calibration temperature (humidity sensor)
40
float
valid
;
// Valid table (Created in ATC && Updated in ACC)
41
};
42
43
// Each bin data, as it's written in the actual raw table
44
struct
thermal_bin
45
{
46
float
scale
;
47
float
sheer
;
// parameters which affect offset that are not in use
48
float
tx
;
49
float
ty
;
50
};
51
52
// Number of bins *between* min and max:
53
// bin - size = ( max - min ) / ( resolution + 1 )
54
// In the raw calibration table, 29 is implicitly used.
55
size_t
_resolution
;
56
57
thermal_table_header
_header
;
58
std::vector< thermal_bin >
bins
;
59
60
thermal_calibration_table
();
61
thermal_calibration_table
(
const
std::vector< byte > &
data
,
int
resolution
= 29 );
62
63
double
get_thermal_scale
(
double
hum_temp )
const override
;
64
65
std::vector< byte >
build_raw_data
()
const override
;
66
67
bool
is_valid
()
const override
{
return
_header.
valid
!= 0.f; }
68
};
69
#pragma pack( pop )
70
71
bool
operator==
(
const
thermal_calibration_table
&
lhs
,
const
thermal_calibration_table
& rhs );
72
73
}
// namespace l500
74
}
// namespace thermal_loop
75
}
// namespace algo
76
}
// namespace librealsense
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_calibration_table
thermal_calibration_table()
Definition:
l500-thermal-loop.cpp:15
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_table_header::valid
float valid
Definition:
l500-thermal-loop.h:40
librealsense::algo::thermal_loop::l500::operator==
bool operator==(const thermal_calibration_table &lhs, const thermal_calibration_table &rhs)
Definition:
l500-thermal-loop.cpp:48
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_table_header
Definition:
l500-thermal-loop.h:35
librealsense::algo::thermal_loop::l500::thermal_calibration_table::build_raw_data
std::vector< byte > build_raw_data() const override
Definition:
l500-thermal-loop.cpp:96
librealsense::algo::thermal_loop::thermal_calibration_table_interface
Definition:
thermal-calibration-table-interface.h:13
librealsense::algo::thermal_loop::l500::thermal_calibration_table::is_valid
bool is_valid() const override
Definition:
l500-thermal-loop.h:67
librealsense::resolution
Definition:
src/types.h:656
librealsense::algo::thermal_loop::l500::thermal_calibration_table
Definition:
l500-thermal-loop.h:29
librealsense
Definition:
calibration-model.h:6
librealsense::algo::thermal_loop::l500::thermal_calibration_table::_header
thermal_table_header _header
Definition:
l500-thermal-loop.h:57
librealsense::algo::thermal_loop::l500::thermal_calibration_table::bins
std::vector< thermal_bin > bins
Definition:
l500-thermal-loop.h:58
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_bin::sheer
float sheer
Definition:
l500-thermal-loop.h:47
librealsense::algo::thermal_loop::l500::thermal_calibration_table::_resolution
size_t _resolution
Definition:
l500-thermal-loop.h:55
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_table_header::reference_temp
float reference_temp
Definition:
l500-thermal-loop.h:39
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_table_header::max_temp
float max_temp
Definition:
l500-thermal-loop.h:38
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_bin::scale
float scale
Definition:
l500-thermal-loop.h:46
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_bin::tx
float tx
Definition:
l500-thermal-loop.h:48
librealsense::algo::depth_to_rgb_calibration
Definition:
calibration-types.h:12
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_bin
Definition:
l500-thermal-loop.h:44
librealsense::algo::thermal_loop::l500::thermal_calibration_table::id
static const int id
Definition:
l500-thermal-loop.h:32
librealsense::algo::thermal_loop::l500::thermal_calibration_table::get_thermal_scale
double get_thermal_scale(double hum_temp) const override
Definition:
l500-thermal-loop.cpp:68
thermal-calibration-table-interface.h
lhs
YYCODETYPE lhs
Definition:
sqlite3.c:132469
data
Definition:
parser.hpp:150
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_bin::ty
float ty
Definition:
l500-thermal-loop.h:49
librealsense::algo::thermal_loop::l500::thermal_calibration_table::thermal_table_header::min_temp
float min_temp
Definition:
l500-thermal-loop.h:37
librealsense2
Author(s): Sergey Dorodnicov
, Doron Hirshberg
, Mark Horn
, Reagan Lopez
, Itay Carpis
autogenerated on Mon May 3 2021 02:47:21