$extrastylesheet
Olena
User documentation 2.1
An Image Processing Platform
Scribo
Modules
Namespaces
Classes
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
wolf_formula.hh
1
// Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)
2
//
3
// This file is part of Olena.
4
//
5
// Olena is free software: you can redistribute it and/or modify it under
6
// the terms of the GNU General Public License as published by the Free
7
// Software Foundation, version 2 of the License.
8
//
9
// Olena is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
// General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
16
//
17
// As a special exception, you may use this file as part of a free
18
// software project without restriction. Specifically, if other files
19
// instantiate templates or use macros or inline functions from this
20
// file, or you compile this file and link it with other files to produce
21
// an executable, this file does not by itself cause the resulting
22
// executable to be covered by the GNU General Public License. This
23
// exception does not however invalidate any other reasons why the
24
// executable file might be covered by the GNU General Public License.
25
26
#ifndef SCRIBO_BINARIZATION_INTERNAL_WOLF_FORMULA_HH
27
# define SCRIBO_BINARIZATION_INTERNAL_WOLF_FORMULA_HH
28
29
34
35
36
// Setup default Wolf's formula parameters values.
37
// These macros may be used in other variant of Wolf's algorithms.
38
//
39
// Values are set according to the following reference: <FIXME>
40
41
# define SCRIBO_DEFAULT_WOLF_K 0.34
42
43
44
#include <mln/core/alias/point2d.hh>
45
46
namespace
scribo
47
{
48
49
namespace
binarization
50
{
51
52
namespace
internal
53
{
54
55
using namespace
mln;
56
57
template
<
typename
V>
58
struct
wolf_formula
59
{
60
67
double
operator()(
const
double
m_x_y,
const
double
s_x_y,
68
const
double
K,
const
double
global_max_stddev,
69
const
V& global_min)
const
;
70
71
};
72
73
74
# ifndef MLN_INCLUDE_ONLY
75
76
77
template
<
typename
V>
78
inline
79
double
80
wolf_formula<V>::operator()
(
const
double
m_x_y,
const
double
s_x_y,
81
const
double
K,
const
double
global_max_stddev,
82
const
V& global_min)
const
83
{
84
return
m_x_y - K * (1 - s_x_y / global_max_stddev) * (m_x_y - global_min);
85
}
86
87
# endif // ! MLN_INCLUDE_ONLY
88
89
}
// end of namespace scribo::binarization::internal
90
91
}
// end of namespace scribo::binarization
92
93
}
// end of namespace scribo
94
95
#endif // ! SCRIBO_BINARIZATION_INTERNAL_WOLF_FORMULA_HH
scribo
scribo
binarization
internal
wolf_formula.hh
Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)