iLab Neuromorphic Robotics Toolkit
0.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
Covariance.H
Go to the documentation of this file.
1
/*! @file
2
@author Shane Grant
3
@copyright GNU Public License (GPL v3)
4
@section License
5
@verbatim
6
// ////////////////////////////////////////////////////////////////////////
7
// The iLab Neuromorphic Robotics Toolkit (NRT) //
8
// Copyright 2010-2012 by the University of Southern California (USC) //
9
// and the iLab at USC. //
10
// //
11
// iLab - University of Southern California //
12
// Hedco Neurociences Building, Room HNB-10 //
13
// Los Angeles, Ca 90089-2520 - USA //
14
// //
15
// See http://ilab.usc.edu for information about this project. //
16
// ////////////////////////////////////////////////////////////////////////
17
// This file is part of The iLab Neuromorphic Robotics Toolkit. //
18
// //
19
// The iLab Neuromorphic Robotics Toolkit is free software: you can //
20
// redistribute it and/or modify it under the terms of the GNU General //
21
// Public License as published by the Free Software Foundation, either //
22
// version 3 of the License, or (at your option) any later version. //
23
// //
24
// The iLab Neuromorphic Robotics Toolkit is distributed in the hope //
25
// that it will be useful, but WITHOUT ANY WARRANTY; without even the //
26
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
27
// PURPOSE. See the GNU General Public License for more details. //
28
// //
29
// You should have received a copy of the GNU General Public License //
30
// along with The iLab Neuromorphic Robotics Toolkit. If not, see //
31
// <http://www.gnu.org/licenses/>. //
32
// ////////////////////////////////////////////////////////////////////////
33
@endverbatim */
34
35
#ifdef NRT_HAVE_CLOUD
36
#ifndef INCLUDE_NRT_POINTCLOUD2_COMMON_COVARIANCE_H
37
#define INCLUDE_NRT_POINTCLOUD2_COMMON_COVARIANCE_H
38
39
#include <utility>
40
#include <
nrt/PointCloud2/PointCloud2.H
>
41
42
namespace
nrt
43
{
44
//! Computes the covariance matrix for 3d geometry in a point cloud
45
/*! The cloud will be de-meaned as part of this function
46
@param input The input point cloud
47
@param normalize Whether we should normalize the resulting matrix
48
@return The 3x3 covariance matrix
49
@ingroup pointcloudcommon */
50
PointCloud2::Matrix3
computeCovariance
( PointCloud2
const
input,
bool
normalize
=
false
);
51
52
//! Computes the covariance matrix for 3d geometry in a point cloud
53
/*! @param input The input point cloud
54
@param centroid The centroid for the input cloud
55
@param normalize Whether we should normalize the resulting matrix
56
@return The 3x3 covariance matrix
57
@ingroup pointcloudcommon */
58
PointCloud2::Matrix3
computeCovariance
( PointCloud2
const
input,
PointCloud2::Geometry
const
& centroid,
bool
normalize
=
false
);
59
60
//! Computes the covariance matrix for 3d geometry in a point cloud subset
61
/*! The cloud will be de-meaned as part of this function
62
@param input The input point cloud
63
@param subset The subset to consider
64
@param normalize Whether we should normalize the resulting matrix
65
@return The 3x3 covariance matrix
66
@ingroup pointcloudcommon */
67
PointCloud2::Matrix3
computeCovariance
( PointCloud2
const
input,
Indices
const
subset,
bool
normalize
=
false
);
68
69
//! Computes the covariance matrix for 3d geometry in a point cloud subset
70
/*! @param input The input point cloud
71
@param subset The subset to consider
72
@param centroid The centroid for the input cloud subset
73
@param normalize Whether we should normalize the resulting matrix
74
@return The 3x3 covariance matrix
75
@ingroup pointcloudcommon */
76
PointCloud2::Matrix3
computeCovariance
( PointCloud2
const
input,
Indices
const
subset,
PointCloud2::Geometry
const
& centroid,
bool
normalize
=
false
);
77
78
//! Computes the normalized covariance and centroid in one step
79
/*! Uses a one pass variant that is less numerically stable than the two-pass
80
versions used in the computeCovariance functions.
81
@param input The input point cloud
82
@return The 3x3 normalized covariance matrix and the centroid
83
@ingroup pointcloudcommon */
84
std::pair<PointCloud2::Matrix3, PointCloud2::Geometry>
computeCovarianceAndCentroid
( PointCloud2
const
input );
85
86
//! Computes the normalized covariance and centroid in one step for a subset
87
/*! Uses a one pass variant that is less numerically stable than the two-pass
88
versions used in the computeCovariance functions.
89
@param input The input point cloud
90
@param subset The subset to consider
91
@return The 3x3 normalized covariance matrix and the centroid
92
@ingroup pointcloudcommon */
93
std::pair<PointCloud2::Matrix3, PointCloud2::Geometry>
computeCovarianceAndCentroid
( PointCloud2
const
input,
Indices
const
subset );
94
}
// namespace nrt
95
96
#endif // INCLUDE_NRT_POINTCLOUD2_COMMON_COVARIANCE_H
97
#endif // NRT_HAVE_CLOUD
include
nrt
PointCloud2
Common
Covariance.H
Generated on Tue Jul 15 2014 17:09:38 for iLab Neuromorphic Robotics Toolkit by
1.8.4