OTB
9.0.0
Orfeo Toolbox
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
z
Functions
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Variables
a
c
d
f
g
h
i
l
m
n
p
r
s
t
u
v
Typedefs
b
c
d
f
g
i
k
l
m
n
p
r
s
u
v
z
Enumerations
Enumerator
a
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
u
v
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerations
a
b
c
d
f
h
i
l
m
o
p
s
t
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Related Functions
a
b
c
e
f
g
i
l
m
n
o
r
Files
File List
File Members
All
_
b
c
d
e
f
g
i
l
m
o
p
r
s
t
u
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
_
b
c
d
g
i
o
r
t
u
Examples
Modules
Hyperspectral
Unmixing
include
otbUnConstrainedLeastSquareImageFilter.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3
*
4
* This file is part of Orfeo Toolbox
5
*
6
* https://www.orfeo-toolbox.org/
7
*
8
* Licensed under the Apache License, Version 2.0 (the "License");
9
* you may not use this file except in compliance with the License.
10
* You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing, software
15
* distributed under the License is distributed on an "AS IS" BASIS,
16
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
* See the License for the specific language governing permissions and
18
* limitations under the License.
19
*/
20
21
#ifndef otbUnConstrainedLeastSquareImageFilter_h
22
#define otbUnConstrainedLeastSquareImageFilter_h
23
24
#include "itkMacro.h"
25
#include "
otbFunctorImageFilter.h
"
26
#include "vnl/algo/vnl_svd.h"
27
#include <memory>
28
29
namespace
otb
30
{
31
32
namespace
Functor
33
{
34
43
template
<
class
TInput,
class
TOutput,
class
TPrecision>
44
class
UnConstrainedLeastSquareFunctor
45
{
46
public
:
47
typedef
TInput
InputType
;
48
typedef
TOutput
OutputType
;
49
typedef
TPrecision
PrecisionType
;
50
51
typedef
vnl_vector<PrecisionType>
VectorType
;
52
typedef
vnl_matrix<PrecisionType>
MatrixType
;
53
54
UnConstrainedLeastSquareFunctor
() :
m_OutputSize
(0){};
55
virtual
~UnConstrainedLeastSquareFunctor
() =
default
;
56
57
size_t
OutputSize
(
const
std::array<size_t, 1>& nbBands)
const
;
58
59
void
SetMatrix
(
const
MatrixType
& m);
60
61
OutputType
operator()
(
const
InputType
& in)
const
;
62
63
private
:
64
typedef
vnl_svd<PrecisionType>
SVDType
;
65
typedef
std::shared_ptr<SVDType>
SVDPointerType
;
66
67
unsigned
int
m_OutputSize
;
68
SVDPointerType
m_Svd
;
69
MatrixType
m_Inv
;
70
};
71
}
72
94
template
<
typename
TInputImage,
typename
TOutputImage,
typename
TPrecision>
95
using
UnConstrainedLeastSquareImageFilter
=
96
FunctorImageFilter<Functor::UnConstrainedLeastSquareFunctor<typename TInputImage::PixelType, typename TOutputImage::PixelType, TPrecision>
>;
97
98
}
// end namespace otb
99
100
#ifndef OTB_MANUAL_INSTANTIATION
101
#include "
otbUnConstrainedLeastSquareImageFilter.hxx
"
102
#endif
103
104
#endif
otb::Functor::UnConstrainedLeastSquareFunctor::m_Svd
SVDPointerType m_Svd
Definition:
otbUnConstrainedLeastSquareImageFilter.h:68
otbFunctorImageFilter.h
otb::Functor::UnConstrainedLeastSquareFunctor::SetMatrix
void SetMatrix(const MatrixType &m)
Definition:
otbUnConstrainedLeastSquareImageFilter.hxx:38
otb::Functor::UnConstrainedLeastSquareFunctor::m_Inv
MatrixType m_Inv
Definition:
otbUnConstrainedLeastSquareImageFilter.h:69
otb::Functor::UnConstrainedLeastSquareFunctor::m_OutputSize
unsigned int m_OutputSize
Definition:
otbUnConstrainedLeastSquareImageFilter.h:67
otb::FunctorImageFilter
A generic functor filter templated by its functor.
Definition:
otbFunctorImageFilter.h:322
otb::Functor::UnConstrainedLeastSquareFunctor::OutputSize
vcl_size_t OutputSize(const std::array< vcl_size_t, 1 > &nbBands) const
Definition:
otbUnConstrainedLeastSquareImageFilter.hxx:32
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition:
otbJoinContainer.h:32
otb::Functor::UnConstrainedLeastSquareFunctor
Solves a least square system on a pixel.
Definition:
otbUnConstrainedLeastSquareImageFilter.h:44
otb::Functor::UnConstrainedLeastSquareFunctor::SVDPointerType
std::shared_ptr< SVDType > SVDPointerType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:65
otb::Functor::UnConstrainedLeastSquareFunctor::operator()
OutputType operator()(const InputType &in) const
Definition:
otbUnConstrainedLeastSquareImageFilter.hxx:47
otb::Functor::UnConstrainedLeastSquareFunctor::~UnConstrainedLeastSquareFunctor
virtual ~UnConstrainedLeastSquareFunctor()=default
otbUnConstrainedLeastSquareImageFilter.hxx
otb::Functor::UnConstrainedLeastSquareFunctor::OutputType
TOutput OutputType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:48
otb::Functor::UnConstrainedLeastSquareFunctor::MatrixType
vnl_matrix< PrecisionType > MatrixType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:52
otb::Functor::UnConstrainedLeastSquareFunctor::InputType
TInput InputType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:47
otb::Functor::UnConstrainedLeastSquareFunctor::SVDType
vnl_svd< PrecisionType > SVDType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:64
otb::Functor::UnConstrainedLeastSquareFunctor::VectorType
vnl_vector< PrecisionType > VectorType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:51
otb::Functor::UnConstrainedLeastSquareFunctor::UnConstrainedLeastSquareFunctor
UnConstrainedLeastSquareFunctor()
Definition:
otbUnConstrainedLeastSquareImageFilter.h:54
otb::Functor::UnConstrainedLeastSquareFunctor::PrecisionType
TPrecision PrecisionType
Definition:
otbUnConstrainedLeastSquareImageFilter.h:49
Generated at Wed Feb 28 2024 15:24:23 for
OTB
with
1.8.17