DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
exampleRigidtransformation2d.cpp
Go to the documentation of this file.
1
16
29
36
37
39
#include <iostream>
40
#include <cmath>
41
#include "DGtal/images/ImageSelector.h"
42
#include "DGtal/images/ImageContainerBySTLVector.h"
43
#include "DGtal/images/ConstImageAdapter.h"
44
#include "ConfigExamples.h"
45
#include "DGtal/helpers/StdDefs.h"
46
#include "DGtal/base/Common.h"
47
#include "DGtal/io/readers/PGMReader.h"
48
#include "DGtal/io/writers/GenericWriter.h"
50
#include "DGtal/images/RigidTransformation2D.h"
53
54
using namespace
std
;
55
using namespace
DGtal
;
56
using namespace
functors
;
57
using namespace
Z2i
;
58
60
61
int
main
(
int
,
char
** )
62
{
63
typedef
ImageSelector<Domain, unsigned char >::Type
Image
;
65
typedef
ForwardRigidTransformation2D < Space > ForwardTrans;
66
typedef
BackwardRigidTransformation2D < Space > BackwardTrans;
67
typedef
ConstImageAdapter<Image, Domain, BackwardTrans, Image::Value, Identity >
MyImageBackwardAdapter;
68
typedef
DomainRigidTransformation2D < Domain, ForwardTrans > MyDomainTransformer;
69
typedef
MyDomainTransformer::Bounds Bounds;
71
trace
.
beginBlock
(
"Example rigidtransformation2d"
);
73
ForwardTrans forwardTrans(
RealPoint
( 5, 5 ), M_PI_4,
RealVector
( 3, -3 ) );
74
BackwardTrans backwardTrans(
RealPoint
( 5, 5 ), M_PI_4,
RealVector
( 3, -3 ) );
77
MyDomainTransformer domainTransformer ( forwardTrans );
79
Identity
idD;
80
81
Image
image
=
PGMReader<Image>::importPGM
( examplesPath +
"samples/church.pgm"
);
83
Bounds bounds = domainTransformer (
image
.
domain
() );
84
Domain
transformedDomain ( bounds.first, bounds.second );
86
87
trace
.
beginBlock
(
"Backward - Eulerian model"
);
89
MyImageBackwardAdapter backwardImageAdapter (
image
, transformedDomain , backwardTrans, idD );
91
backwardImageAdapter >>
"backward_transform.pgm"
;
92
trace
.
endBlock
();
93
94
trace
.
beginBlock
(
"Forward - Lagrangian model"
);
95
Image
forwardTransformedImage ( transformedDomain );
97
for
(
Domain::ConstIterator
it =
image
.
domain
().
begin
(); it !=
image
.
domain
().
end
(); ++it )
98
{
99
forwardTransformedImage.
setValue
( forwardTrans ( *it ),
image
( *it ) );
100
}
102
forwardTransformedImage >>
"forward_transform.pgm"
;
103
trace
.
endBlock
();
104
trace
.
endBlock
();
105
return
0;
106
}
107
// //
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::HyperRectDomain::begin
const ConstIterator & begin() const
Definition
HyperRectDomain.h:176
DGtal::HyperRectDomain::end
const ConstIterator & end() const
Definition
HyperRectDomain.h:201
DGtal::HyperRectDomain< Space >::ConstIterator
Iterator ConstIterator
Definition
HyperRectDomain.h:125
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::Image::setValue
void setValue(const Point &aPoint, const Value &aValue)
Definition
Image.h:247
DGtal::Trace::beginBlock
void beginBlock(const std::string &keyword="")
DGtal::Trace::endBlock
double endBlock()
DGtal::Domain
DGtal::Z2i
Z2i this namespace gathers the standard of types for 2D imagery.
DGtal::Z2i::RealVector
Space::RealVector RealVector
Definition
StdDefs.h:98
DGtal::Z2i::RealPoint
Space::RealPoint RealPoint
Definition
StdDefs.h:97
DGtal::functors
functors namespace gathers all DGtal functors.
Definition
BasicBoolFunctors.h:49
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::ImageSelector::Type
ImageContainerBySTLVector< Domain, Value > Type
Definition
ImageSelector.h:84
DGtal::PGMReader::importPGM
static ImageContainer importPGM(const std::string &aFilename, const Functor &aFunctor=Functor(), bool topbotomOrder=true)
DGtal::functors::Identity
Aim: Define a simple default functor that just returns its argument.
Definition
BasicFunctors.h:288
main
int main(int, char **)
Definition
testIntegerComputer.cpp:331
image
Image image(domain)
examples
images
exampleRigidtransformation2d.cpp
Generated on
for DGtal by
1.18.0