DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
imageSetDT.cpp
Go to the documentation of this file.
1
16
29
31
#include <iostream>
32
#include <fstream>
33
#include <algorithm>
34
#include <boost/algorithm/minmax_element.hpp>
36
38
#include "DGtal/base/Common.h"
39
#include "DGtal/helpers/StdDefs.h"
40
41
#include "DGtal/base/BasicFunctors.h"
42
#include "DGtal/kernel/BasicPointPredicates.h"
43
#include "DGtal/kernel/sets/DigitalSetInserter.h"
44
45
#include "DGtal/images/ImageContainerBySTLVector.h"
46
#include "DGtal/images/ImageHelper.h"
47
#include "DGtal/geometry/volumes/distance/DistanceTransformation.h"
48
#include "DGtal/images/IntervalForegroundPredicate.h"
49
50
#include "DGtal/io/boards/Board2D.h"
51
#include "DGtal/io/readers/PGMReader.h"
52
#include "DGtal/io/colormaps/HueShadeColorMap.h"
53
#include "DGtal/io/colormaps/GrayscaleColorMap.h"
54
55
#include "ConfigExamples.h"
57
58
60
using namespace
DGtal
;
61
62
int
main
()
63
{
65
typedef
DGtal::ImageContainerBySTLVector< Z2i::Domain, unsigned char>
Image
;
66
typedef
DGtal::GrayscaleColorMap<unsigned char>
Gray;
68
69
71
std::string filename = examplesPath +
"samples/contourS.pgm"
;
72
Image
image
=
DGtal::PGMReader<Image>::importPGM
(filename);
73
DGtal::trace
.
info
() <<
"Imported image: "
<<
image
<<std::endl;
75
76
78
DGtal::Board2D
aBoard;
79
aBoard <<
image
.
domain
();
80
aBoard.
saveSVG
(
"imageDomainTuto.svg"
);
81
aBoard.
clear
();
82
Display2DFactory::drawImage<Gray>
(aBoard,
image
, (
unsigned
char
)0, (
unsigned
char
)255);
83
aBoard.
saveEPS
(
"imageDomainTuto2.eps"
);
85
86
87
Z2i::DigitalSet
mySet(
image
.
domain
());
88
DigitalSetInserter<Z2i::DigitalSet>
inserter(mySet);
89
setFromImage
(
image
, inserter, 1, 135);
90
aBoard.
clear
();
91
aBoard << mySet.
domain
()
92
<< mySet;
93
aBoard.
saveEPS
(
"imageDomainTuto2bis.eps"
);
94
95
97
typedef
functors::IntervalForegroundPredicate<Image>
Binarizer
;
98
Binarizer
b(
image
,1, 135);
99
typedef
DGtal::DistanceTransformation<Z2i::Space, Binarizer, Z2i::L2Metric>
DTL2;
100
DTL2
dt
(&
image
.
domain
(),&b, &Z2i::l2Metric );
102
103
105
DTL2::Value maxDT = (*boost::first_max_element(
dt
.constRange().begin(),
106
dt
.constRange().end(), std::less<DTL2::Value>() ));
107
typedef
DGtal::HueShadeColorMap<DTL2::Value,2>
HueTwice;
108
109
aBoard.
clear
();
110
Display2DFactory::drawImage<HueTwice>
(aBoard,
dt
, (DTL2::Value)0,
111
(DTL2::Value)maxDT);
112
aBoard.
saveEPS
(
"imageDomainTuto3.eps"
);
114
115
return
0;
116
117
}
118
DGtal::Board2D
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Definition
Board2D.h:71
DGtal::DigitalSetByAssociativeContainer::domain
const Domain & domain() const
DGtal::DigitalSetInserter
Aim: this output iterator class is designed to allow algorithms to insert points in the digital set....
Definition
DigitalSetInserter.h:66
DGtal::DistanceTransformation
Aim: Implementation of the linear in time distance transformation for separable metrics.
Definition
DistanceTransformation.h:99
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::Image
Aim: implements association between points lying in a digital domain and values.
Definition
Image.h:70
DGtal::Image::domain
const Domain & domain() const
Definition
Image.h:192
DGtal::Trace::info
std::ostream & info()
DGtal::functors::IntervalForegroundPredicate
Aim: Define a simple Foreground predicate thresholding image values between two constant values (the ...
Definition
IntervalForegroundPredicate.h:65
LibBoard::Board::clear
void clear(const DGtal::Color &color=DGtal::Color::None)
Definition
Board.cpp:151
LibBoard::Board::saveEPS
void saveEPS(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition
Board.cpp:804
LibBoard::Board::saveSVG
void saveSVG(const char *filename, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition
Board.cpp:1011
dt
float dt
Definition
dgtalCalculus-geodesic.cpp:63
DGtal::Z2i::DigitalSet
DigitalSetSelector< Domain, BIG_DS+HIGH_BEL_DS >::Type DigitalSet
Definition
StdDefs.h:100
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::setFromImage
void setFromImage(const I &aImg, const O &ito, const typename I::Value &aThreshold=0)
DGtal::trace
Trace trace
Binarizer
[Functor]
Definition
exampleFunctorHolder.cpp:92
DGtal::Display2DFactory::drawImage
static void drawImage(DGtal::Board2D &board, const Image &i, const typename Image::Value &minV, const typename Image::Value &maxV)
DGtal::PGMReader::importPGM
static ImageContainer importPGM(const std::string &aFilename, const Functor &aFunctor=Functor(), bool topbotomOrder=true)
main
int main(int, char **)
Definition
testIntegerComputer.cpp:331
image
Image image(domain)
examples
tutorial-examples
imageSetDT.cpp
Generated on
for DGtal by
1.18.0