DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
exampleConstImageAdapter.cpp
Go to the documentation of this file.
1
16
29
36
37
39
#include <iostream>
40
41
#include "DGtal/base/Common.h"
42
#include "DGtal/helpers/StdDefs.h"
43
#include "ConfigExamples.h"
44
45
#include "DGtal/io/boards/Board2D.h"
46
48
#include "DGtal/io/colormaps/HueShadeColorMap.h"
49
#include "DGtal/io/colormaps/GrayscaleColorMap.h"
50
51
#include "DGtal/images/ImageContainerBySTLVector.h"
52
#include "DGtal/images/ConstImageAdapter.h"
54
56
57
using namespace
std
;
58
using namespace
DGtal
;
60
61
63
template
<
typename
Scalar>
64
struct
LogScaleFunctor
{
65
66
LogScaleFunctor
() {};
67
double
operator()
(
const
Scalar &a)
const
68
{
69
return
std::log( 1 +
NumberTraits<Scalar>::castToDouble
(a) );
70
}
71
72
};
73
74
75
76
int
main
(
/*int argc, char** argv*/
)
77
{
78
using namespace
Z2i
;
79
80
Board2D
aBoard;
81
83
typedef
HueShadeColorMap<unsigned char>
HueShade;
// a simple HueShadeColorMap varying on 'unsigned char' values
84
typedef
HueShadeColorMap<double>
HueShadeDouble;
// a simple HueShadeColorMap varying on 'double' values
85
typedef
GrayscaleColorMap<unsigned char>
Gray;
// a simple GrayscaleColorMap varying on 'unsigned char' values
86
87
functors::Identity
df;
// a simple functor that just returns its argument
89
90
trace
.
beginBlock
(
"image"
);
91
93
typedef
ImageContainerBySTLVector<Domain, unsigned char>
Image
;
94
Domain
domain
(
Point
(1,1),
Point
(16,16));
95
Image
image
(
domain
);
97
99
unsigned
char
i = 0;
100
for
(
Image::Iterator
it =
image
.begin(); it !=
image
.end(); ++it)
101
*it = i++;
103
104
aBoard.
clear
();
105
Display2DFactory::drawImage<HueShade>
(aBoard,
image
, (
unsigned
char
)0, (
unsigned
char
)255);
106
aBoard.
saveSVG
(
"image.svg"
);
107
108
trace
.
endBlock
();
109
110
trace
.
beginBlock
(
"subImage"
);
111
113
typedef
ConstImageAdapter<Image, Domain, functors::Identity, Image::Value, functors::Identity >
ConstImageAdapterForSubImage;
114
Domain
subDomain(
Point
(1,1),
Point
(8,8));
115
ConstImageAdapterForSubImage subImage(
image
, subDomain, df, df);
117
118
aBoard.
clear
();
119
Display2DFactory::drawImage<HueShade>
(aBoard, subImage, (
unsigned
char
)0, (
unsigned
char
)255);
120
aBoard.
saveSVG
(
"subImage.svg"
);
121
122
trace
.
endBlock
();
123
124
trace
.
beginBlock
(
"specificImage"
);
125
127
DigitalSet
set(
domain
);
128
for
(
unsigned
int
y=0; y < 17; y++)
129
for
(
unsigned
int
x=0; x < 17; x++)
130
if
((x%2) && (y%2))
131
set.insertNew(
Point
(x,y));
132
133
DigitalSetDomain<DigitalSet>
specificDomain(set);
135
137
typedef
ConstImageAdapter<Image, DigitalSetDomain<DigitalSet>
,
functors::Identity
,
Image::Value
,
functors::Identity
> ConstImageAdapterForSpecificImage;
138
ConstImageAdapterForSpecificImage specificImage(
image
, specificDomain, df, df);
140
141
aBoard.
clear
();
142
Display2DFactory::drawImage<HueShade>
(aBoard, specificImage, (
unsigned
char
)0, (
unsigned
char
)255);
143
aBoard.
saveSVG
(
"specificImage.svg"
);
144
145
trace
.
endBlock
();
146
147
trace
.
beginBlock
(
"thresholderImage"
);
148
150
typedef
ConstImageAdapter<Image, Domain, functors::Identity, bool, DGtal::functors::Thresholder<Image::Value>
> ConstImageAdapterForThresholderImage;
151
DGtal::functors::Thresholder<Image::Value>
t(127);
152
ConstImageAdapterForThresholderImage thresholderImage(
image
,
domain
, df, t);
154
155
aBoard.
clear
();
156
Display2DFactory::drawImage<Gray>
(aBoard, thresholderImage, (
unsigned
char
)0, (
unsigned
char
)1);
157
aBoard.
saveSVG
(
"thresholderImage.svg"
);
158
159
trace
.
endBlock
();
160
161
trace
.
beginBlock
(
"logImage"
);
162
164
typedef
ConstImageAdapter<Image, Domain, functors::Identity, double, LogScaleFunctor<Image::Value>
> ConstImageAdapterForLogScale;
165
LogScaleFunctor<Image::Value>
logScale;
166
ConstImageAdapterForLogScale logImage(
image
,
domain
, df, logScale);
168
169
aBoard.
clear
();
170
Display2DFactory::drawImage<HueShadeDouble>
(aBoard, logImage, 0.0, logScale(255));
171
aBoard.
saveSVG
(
"logImage.svg"
);
172
173
trace
.
endBlock
();
174
175
return
0;
176
}
177
// //
DGtal::Board2D
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Definition
Board2D.h:71
DGtal::ConstImageAdapter
Aim: implements a const image adapter with a given domain (i.e. a subdomain) and 2 functors : g for d...
Definition
ConstImageAdapter.h:106
DGtal::DigitalSetDomain
Aim: Constructs a domain limited to the given digital set.
Definition
DigitalSetDomain.h:60
DGtal::GrayscaleColorMap
Aim: This class template may be used to (linearly) convert scalar values in a given range into gray l...
Definition
GrayscaleColorMap.h:94
DGtal::HueShadeColorMap
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
Definition
HueShadeColorMap.h:91
DGtal::ImageContainerBySTLVector
Definition
ImageContainerBySTLVector.h:127
DGtal::ImageContainerBySTLVector< Domain, Value >::Iterator
std::vector< Value >::iterator Iterator
Definition
ImageContainerBySTLVector.h:264
DGtal::ImageContainerBySTLVector< Domain, Value >::Value
Value Value
Definition
ImageContainerBySTLVector.h:153
DGtal::Image
Aim: implements association between points lying in a digital domain and values.
Definition
Image.h:70
DGtal::Point
DGtal::Trace::beginBlock
void beginBlock(const std::string &keyword="")
DGtal::Trace::endBlock
double endBlock()
DGtal::Domain
DGtal::functors::Thresholder
Aim: A small functor with an operator () that compares one value to a threshold value according to tw...
Definition
BasicFunctors.h:501
LibBoard::Board::clear
void clear(const DGtal::Color &color=DGtal::Color::None)
Definition
Board.cpp:151
LibBoard::Board::saveSVG
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition
Board.cpp:1011
DGtal::Z2i
Z2i this namespace gathers the standard of types for 2D imagery.
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::trace
Trace trace
std
STL namespace.
DGtal::Display2DFactory::drawImage
static void drawImage(DGtal::Board2D &board, const Image &i, const typename Image::Value &minV, const typename Image::Value &maxV)
DGtal::NumberTraits
Aim: The traits class for all models of Cinteger.
Definition
NumberTraits.h:562
DGtal::functors::Identity
Aim: Define a simple default functor that just returns its argument.
Definition
BasicFunctors.h:288
LogScaleFunctor
[LogScaleFunctor]
Definition
exampleConstImageAdapter.cpp:64
LogScaleFunctor::operator()
double operator()(const Scalar &a) const
Definition
exampleConstImageAdapter.cpp:67
LogScaleFunctor::LogScaleFunctor
LogScaleFunctor()
Definition
exampleConstImageAdapter.cpp:66
main
int main(int, char **)
Definition
testIntegerComputer.cpp:331
domain
Domain domain
Definition
testProjection.cpp:88
image
Image image(domain)
DigitalSet
Z2i::DigitalSet DigitalSet
Definition
testVoronoiMapComplete.cpp:40
examples
images
exampleConstImageAdapter.cpp
Generated on
for DGtal by
1.18.0