OTB
9.0.0
Orfeo Toolbox
Modules
Core
ImageManipulation
include
otbBinarySpectralAngleFunctor.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 otbBinarySpectralAngleFunctor_h
22
#define otbBinarySpectralAngleFunctor_h
23
24
#include <algorithm>
25
#include "
otbMath.h
"
26
#include "
otbSpectralAngleFunctor.h
"
27
28
namespace
otb
29
{
41
namespace
Functor
42
{
43
template
<
class
TInput1,
class
TInput2,
class
TOutputValue>
44
class
BinarySpectralAngleFunctor
45
{
46
public
:
47
BinarySpectralAngleFunctor
() =
default
;
48
49
virtual
~BinarySpectralAngleFunctor
() =
default
;
50
51
// Binary operator
52
TOutputValue
operator()
(
const
TInput1& in1,
const
TInput2& in2)
const
53
{
54
// Compute norms.
55
auto
in1Norm = 0;
56
auto
in2Norm = 0;
57
auto
nbIter = std::min(in1.Size(), in2.Size());
58
for
(
unsigned
int
i = 0; i < nbIter; ++i)
59
{
60
in1Norm += in1[i] * in1[i];
61
in2Norm += in2[i] * in2[i];
62
}
63
64
return
SpectralAngleDetails::ComputeSpectralAngle<TInput1, TInput2, TOutputValue>(in1, in1Norm, in2, in2Norm);
65
}
66
};
67
68
}
// end namespace Functor
69
}
// end namespace otb
70
71
#endif
otb::Functor::BinarySpectralAngleFunctor
Definition:
otbBinarySpectralAngleFunctor.h:44
otb::Functor::BinarySpectralAngleFunctor::~BinarySpectralAngleFunctor
virtual ~BinarySpectralAngleFunctor()=default
otbMath.h
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition:
otbJoinContainer.h:32
otb::Functor::BinarySpectralAngleFunctor::operator()
TOutputValue operator()(const TInput1 &in1, const TInput2 &in2) const
Definition:
otbBinarySpectralAngleFunctor.h:52
otbSpectralAngleFunctor.h
otb::Functor::BinarySpectralAngleFunctor::BinarySpectralAngleFunctor
BinarySpectralAngleFunctor()=default
Generated at Wed Feb 28 2024 15:21:36 for
OTB
with
1.8.17