DGtal 1.4.0
Loading...
Searching...
No Matches
testImageSpanIterators.cpp
Go to the documentation of this file.
1
33#include <cstdio>
34#include <cmath>
35#include <iostream>
36
37#include "DGtal/base/Common.h"
38#include "DGtal/kernel/SpaceND.h"
39#include "DGtal/kernel/domains/HyperRectDomain.h"
40#include "DGtal/images/ImageContainerBySTLVector.h"
41
42using namespace DGtal;
43using namespace std;
44
45
47{
48 typedef SpaceND<3> Space3Type;
49 typedef Space3Type::Point Point;
50 typedef HyperRectDomain<Space3Type> TDomain;
52
53 const Point::Component t[ ] = { 0, 0, 0};
54 const Point::Component t2[ ] = { 5, 5, 5};
55 const Point::Component t3[ ] = { 0, 0, 0};
56 Point a ( t );
57 Point b ( t2 );
58 Point c( t3 );
59
60 trace.beginBlock("Test of Concepts");
61 TContainerV myImageV ( TDomain(a,b ));
62
63 double cpt=0;
64 //Image Construction
65 for ( TContainerV::Iterator it = myImageV.begin();
66 it != myImageV.end();
67 ++it)
68 {
69 (*it) = cpt ;
70 cpt++;
71 }
72
73
74 //We process a 1D slice
75 trace.info()<<"Slice dim 0 ";
76 for ( TContainerV::SpanIterator it = myImageV.spanBegin(c,0), itend = myImageV.spanEnd(c,0);
77 it != itend;
78 ++it)
79 trace.info() << (*it)<<" ";
80 trace.info() << endl;
81
82 //We process a 1D slice
83 trace.info()<<"Slice dim 1 ";
84 for ( TContainerV::SpanIterator it = myImageV.spanBegin(c,1), itend = myImageV.spanEnd(c,1);
85 it != itend;
86 ++it)
87 trace.info() << (*it)<<" ";
88 trace.info() << endl;
89
90 //We process a 1D slice
91 trace.info()<<"Slice dim 2 ";
92 for ( TContainerV::SpanIterator it = myImageV.spanBegin(c,2), itend = myImageV.spanEnd(c,2);
93 it != itend;
94 ++it)
95 trace.info() << (*it)<<" ";
96 trace.info() << endl;
97
98
99 //We process a 1D slice to set a value
100 trace.info()<<"SetValue Slice dim 1 "<<endl;
101 for ( TContainerV::SpanIterator it = myImageV.spanBegin(c,1), itend = myImageV.spanEnd(c,1);
102 it != itend;
103 ++it)
104 myImageV.setValue(it, 12);
105
106 //We check the a 1D slice
107 trace.info()<<"Check Slice dim 1 ";
108 for ( TContainerV::SpanIterator it = myImageV.spanBegin(c,1), itend = myImageV.spanEnd(c,1);
109 it != itend;
110 ++it)
111 trace.info() << (*it)<<" ";
112 trace.info() << endl;
113
114
115
116 trace.endBlock();
117
118 return true;
119
120}
121
122
123
124int main()
125{
126
127 if ( testSpanIterators())
128 return 0;
129 else
130 return 1;
131}
132
Aim: Parallelepidec region of a digital space, model of a 'CDomain'.
void beginBlock(const std::string &keyword="")
std::ostream & info()
double endBlock()
DGtal is the top-level namespace which contains all DGtal functions and types.
Trace trace
Definition Common.h:153
STL namespace.
MyPointD Point
bool testSpanIterators()