DGtal 1.3.0
Loading...
Searching...
No Matches
QuantifiedColorMap.h
1
17#pragma once
18
31#if defined(QuantifiedColorMap_RECURSES)
32#error Recursive header files inclusion detected in QuantifiedColorMap.h
33#else // defined(QuantifiedColorMap_RECURSES)
35#define QuantifiedColorMap_RECURSES
36
37#if !defined QuantifiedColorMap_h
39#define QuantifiedColorMap_h
40
42// Inclusions
43#include <iostream>
44#include <sstream>
45#include <string>
46#include "DGtal/base/Common.h"
47#include "DGtal/base/Clone.h"
48#include "DGtal/io/Color.h"
49#include "DGtal/io/colormaps/CColorMap.h"
50
51namespace DGtal
52{
53
55 // template class QuantifiedColorMap
65 template < typename TColorMap >
67 {
69 using ColorMap = TColorMap;
71 using Value = typename ColorMap::Value;
72
73 //---------------------------------------------------------------------------
74 public:
75
79 QuantifiedColorMap( Clone< ColorMap > colormap, int nb = 50 )
80 : myColorMap( colormap ), myNbColors( nb )
81 {}
82
88 Color operator()( const Value & value ) const
89 {
90 const Value rel = ( value - myColorMap.min() )
91 / ( myColorMap.max() - myColorMap.min() );
92 const Value qrel = round( myNbColors * rel ) / myNbColors;
93 const Value outv = qrel * ( myColorMap.max() - myColorMap.min() )
94 + myColorMap.min();
95 return myColorMap( outv );
96 }
97
98 //---------------------------------------------------------------------------
99 public:
104
105 };
106
111 template < typename TColorMap >
113 makeQuantifiedColorMap( TColorMap colormap, int nb = 50 )
114 {
115 return QuantifiedColorMap< TColorMap >( colormap, nb );
116 }
117
118} // namespace DGtal
119
121// Includes inline functions.
122// //
124
125#endif // !defined QuantifiedColorMap_h
126
127#undef QuantifiedColorMap_RECURSES
128#endif // else defined(QuantifiedColorMap_RECURSES)
Aim: This class encapsulates its parameter class to indicate that the given parameter is required to ...
Definition: Clone.h:267
Structure representing an RGB triple with alpha component.
Definition: Color.h:68
DGtal is the top-level namespace which contains all DGtal functions and types.
QuantifiedColorMap< TColorMap > makeQuantifiedColorMap(TColorMap colormap, int nb=50)
Aim: A modifier class that quantifies any colormap into a given number of colors. It is particularly ...
Color operator()(const Value &value) const
BOOST_CONCEPT_ASSERT((concepts::CColorMap< TColorMap >))
QuantifiedColorMap(Clone< ColorMap > colormap, int nb=50)
ColorMap myColorMap
the colormap that is quantified
typename ColorMap::Value Value
int myNbColors
the maximum number of colors
Aim: Defines the concept describing a color map. A color map converts a value within a given range in...
Definition: CColorMap.h:94