OTB
9.0.0
Orfeo Toolbox
Modules
FeaturesExtraction
Filtering
ChangeDetection
include
otbMeanRatio.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 otbMeanRatio_h
22
#define otbMeanRatio_h
23
24
#include "
otbBinaryFunctorNeighborhoodImageFilter.h
"
25
26
namespace
otb
27
{
28
41
namespace
Functor
42
{
43
44
template
<
class
TInput1,
class
TInput2,
class
TOutput>
45
class
MeanRatio
46
{
47
public
:
48
MeanRatio
()
49
{
50
}
51
virtual
~MeanRatio
()
52
{
53
}
54
inline
TOutput
operator()
(
const
TInput1& itA,
const
TInput2& itB)
55
{
56
57
TOutput meanA = 0.0;
58
TOutput meanB = 0.0;
59
60
for
(
unsigned
long
pos = 0; pos < itA.Size(); ++pos)
61
{
62
63
meanA +=
static_cast<
TOutput
>
(itA.GetPixel(pos));
64
meanB +=
static_cast<
TOutput
>
(itB.GetPixel(pos));
65
}
66
67
meanA /= itA.Size();
68
meanB /= itB.Size();
69
70
// std::cout<<"meanA= "<<meanA<<", meanB= "<<meanB<<std::endl;
71
72
TOutput ratio;
73
74
if
(meanA == meanB)
75
ratio = 0.;
76
else
if
(meanA > meanB)
77
ratio =
static_cast<
TOutput
>
(1.0 - meanB / meanA);
78
else
79
ratio =
static_cast<
TOutput
>
(1.0 - meanA / meanB);
80
81
return
ratio;
82
}
83
};
84
}
85
}
// end namespace otb
86
87
#endif
otb::Functor::MeanRatio::MeanRatio
MeanRatio()
Definition:
otbMeanRatio.h:48
otb::Functor::MeanRatio
Definition:
otbMeanRatio.h:45
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition:
otbJoinContainer.h:32
otbBinaryFunctorNeighborhoodImageFilter.h
otb::Functor::MeanRatio::~MeanRatio
virtual ~MeanRatio()
Definition:
otbMeanRatio.h:51
otb::Functor::MeanRatio::operator()
TOutput operator()(const TInput1 &itA, const TInput2 &itB)
Definition:
otbMeanRatio.h:54
Generated at Wed Feb 28 2024 15:23:02 for
OTB
with
1.8.17