DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
testRigidTransformation3D.cpp
Go to the documentation of this file.
1
16
29
31
#include <iostream>
32
#include <boost/graph/graph_concepts.hpp>
33
#include "DGtal/base/Common.h"
34
#include "ConfigTest.h"
35
#include "DGtal/helpers/StdDefs.h"
36
#include <DGtal/images/ImageSelector.h>
37
#include <DGtal/images/ImageContainerBySTLVector.h>
38
#include "DGtal/images/ConstImageAdapter.h"
39
#include "DGtal/images/RigidTransformation3D.h"
40
#include "DGtal/io/readers/PGMReader.h"
41
#include "DGtal/io/readers/VolReader.h"
42
#include "DGtal/io/writers/GenericWriter.h"
43
45
46
using namespace
std
;
47
using namespace
DGtal
;
48
using namespace
Z3i
;
49
using namespace
functors
;
50
52
// Functions for testing class RigidTransformation3D.
54
58
class
testRigidTransformation3D
59
{
60
typedef
ImageSelector<Domain, unsigned char >::Type
Image
;
61
typedef
ForwardRigidTransformation3D < Space >
ForwardTrans
;
62
typedef
BackwardRigidTransformation3D < Space >
BackwardTrans
;
63
typedef
ConstImageAdapter<Image, Domain, BackwardTrans, Image::Value, Identity >
MyImageBackwardAdapter
;
64
typedef
DomainRigidTransformation3D < Domain, ForwardTrans >
DomainTrans
;
65
typedef
DomainTrans::Bounds
Bounds
;
66
private
:
67
Image
binary
;
68
ForwardTrans
forwardTrans
;
69
BackwardTrans
backwardTrans
;
70
Identity
idD
;
71
DomainTrans
domainForwardTrans
;
72
public
:
73
// Setup part
74
testRigidTransformation3D
() :
75
binary
(
PGMReader
<
Image
>::importPGM3D ( testPath +
"samples/cat10.pgm3d"
) ),
76
forwardTrans
(
RealPoint
( 5, 5, 5 ),
RealVector
( 1, 0, 1 ), M_PI_4,
RealVector
( 3, -3, 3 ) ),
77
backwardTrans
(
RealPoint
( 5, 5, 5 ),
RealVector
( 1, 0, 1 ), M_PI_4,
RealVector
( 3, -3, 3 ) ),
78
domainForwardTrans
(
forwardTrans
)
79
{}
80
81
bool
forwardTransformation
()
82
{
83
Bounds
bounds =
domainForwardTrans
(
binary
.
domain
() );
84
Domain
d ( bounds.first, bounds.second );
85
Image
transformed ( d );
86
for
(
Domain::ConstIterator
it =
binary
.
domain
().
begin
(); it !=
binary
.
domain
().
end
(); ++it )
87
{
88
transformed.
setValue
(
forwardTrans
( *it ),
binary
( *it ) );
89
}
90
transformed >>
"binary_after_forward.pgm3d"
;
91
return
true
;
92
}
93
bool
backwardTransformation
()
94
{
95
Bounds
bounds =
domainForwardTrans
(
binary
.
domain
() );
96
Domain
d ( bounds.first, bounds.second );
97
MyImageBackwardAdapter
adapter (
binary
, d,
backwardTrans
,
idD
);
98
adapter >>
"binary_after_backward.pgm3d"
;
99
return
true
;
100
}
101
};
102
104
// Standard services - public :
105
106
int
main
(
int
,
char
** )
107
{
108
bool
res =
true
;
109
testRigidTransformation3D
rigidTest;
110
trace
.
beginBlock
(
"Testing RigidTransformation3D"
);
111
res &= rigidTest.
forwardTransformation
();
112
res &= rigidTest.
backwardTransformation
();
113
trace
.
emphase
() << ( res ?
"Passed."
:
"Error."
) << endl;
114
trace
.
endBlock
();
115
return
res ? 0 : 1;
116
}
117
// //
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::ImageContainerBySTLVector::setValue
void setValue(const Point &aPoint, const Value &aValue)
DGtal::ImageContainerBySTLVector::domain
const Domain & domain() const
DGtal::Trace::beginBlock
void beginBlock(const std::string &keyword="")
DGtal::Trace::emphase
std::ostream & emphase()
DGtal::Trace::endBlock
double endBlock()
DGtal::Domain
DGtal::functors::DomainRigidTransformation3D< Domain, ForwardTrans >::Bounds
std::pair< typename Domain::Space::Point, typename Domain::Space::Point > Bounds
Definition
RigidTransformation3D.h:251
testRigidTransformation3D
Definition
testRigidTransformation3D.cpp:59
testRigidTransformation3D::Image
ImageSelector< Domain, unsignedchar >::Type Image
Definition
testRigidTransformation3D.cpp:60
testRigidTransformation3D::Bounds
DomainTrans::Bounds Bounds
Definition
testRigidTransformation3D.cpp:65
testRigidTransformation3D::domainForwardTrans
DomainTrans domainForwardTrans
Definition
testRigidTransformation3D.cpp:71
testRigidTransformation3D::binary
Image binary
Definition
testRigidTransformation3D.cpp:67
testRigidTransformation3D::backwardTrans
BackwardTrans backwardTrans
Definition
testRigidTransformation3D.cpp:69
testRigidTransformation3D::forwardTransformation
bool forwardTransformation()
Definition
testRigidTransformation3D.cpp:81
testRigidTransformation3D::forwardTrans
ForwardTrans forwardTrans
Definition
testRigidTransformation3D.cpp:68
testRigidTransformation3D::idD
Identity idD
Definition
testRigidTransformation3D.cpp:70
testRigidTransformation3D::ForwardTrans
ForwardRigidTransformation3D< Space > ForwardTrans
Definition
testRigidTransformation3D.cpp:61
testRigidTransformation3D::BackwardTrans
BackwardRigidTransformation3D< Space > BackwardTrans
Definition
testRigidTransformation3D.cpp:62
testRigidTransformation3D::backwardTransformation
bool backwardTransformation()
Definition
testRigidTransformation3D.cpp:93
testRigidTransformation3D::MyImageBackwardAdapter
ConstImageAdapter< Image, Domain, BackwardTrans, Image::Value, Identity > MyImageBackwardAdapter
Definition
testRigidTransformation3D.cpp:63
testRigidTransformation3D::DomainTrans
DomainRigidTransformation3D< Domain, ForwardTrans > DomainTrans
Definition
testRigidTransformation3D.cpp:64
testRigidTransformation3D::testRigidTransformation3D
testRigidTransformation3D()
Definition
testRigidTransformation3D.cpp:74
DGtal::Z3i
Z3i this namespace gathers the standard of types for 3D imagery.
DGtal::Z3i::RealVector
Space::RealVector RealVector
Definition
StdDefs.h:171
DGtal::Z3i::RealPoint
Space::RealPoint RealPoint
Definition
StdDefs.h:170
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
Aim: Import a 2D or 3D using the Netpbm formats (ASCII mode).
Definition
PGMReader.h:98
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
tests
images
testRigidTransformation3D.cpp
Generated on
for DGtal by
1.18.0