35 #include "DGtal/base/Common.h" 36 #include "ConfigTest.h" 37 #include "DGtal/helpers/StdDefs.h" 38 #include "DGtal/io/readers/PointListReader.h" 39 #include "DGtal/geometry/curves/Naive3DDSSComputer.h" 40 #include "DGtal/geometry/curves/estimation/LambdaMST3D.h" 41 #include "DGtal/geometry/curves/estimation/FunctorsLambdaMST.h" 42 #include "DGtal/geometry/curves/SaturatedSegmentation.h" 47 using namespace DGtal;
49 using namespace functors;
59 typedef std::vector < Point >
Range;
60 typedef std::list < Point2D > Range2D;
62 typedef Range2D::const_iterator ConstIterator2D;
73 inputStream.open ( (testPath +
"samples/sinus3D.dat").c_str(), std::ios::in );
81 bool lambda64ByPoint ()
83 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
85 lmst64.
attach ( segmenter );
86 lmst64.init ( curve.
begin(), curve.
end() );
93 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
95 lmst64.
attach ( segmenter );
96 lmst64.init ( curve.
begin(), curve.
end() );
97 vector < RealVector > tangent;
98 lmst64.eval < back_insert_iterator< vector < RealVector > > > ( curve.
begin(), curve.
end(), back_insert_iterator< vector < RealVector > > ( tangent ) );
102 bool lambda64Filtered()
104 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
106 lmst64.
attach ( segmenter );
107 lmst64.getDSSFilter ( ).init ( 1 );
108 lmst64.init ( curve.
begin(), curve.
end() );
114 bool lambdaSinByPoint ()
116 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
118 lmst.
attach ( segmenter );
119 lmst.init ( curve.
begin(), curve.
end() );
127 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
129 lmst.
attach ( segmenter );
130 lmst.init ( curve.
begin(), curve.
end() );
131 vector < RealVector > tangent;
132 lmst.eval < back_insert_iterator< vector < RealVector > > > ( curve.
begin(), curve.
end(), back_insert_iterator< vector < RealVector > > ( tangent ) );
136 bool lambdaExpByPoint ()
138 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
140 lmst.
attach ( segmenter );
141 lmst.init ( curve.
begin(), curve.
end() );
149 Segmentation segmenter ( curve.
begin(), curve.
end(), SegmentComputer() );
151 lmst.
attach ( segmenter );
152 lmst.init ( curve.
begin(), curve.
end() );
153 vector < RealVector > tangent;
154 lmst.eval < back_insert_iterator< vector < RealVector > > > ( curve.
begin(), curve.
end(), back_insert_iterator< vector < RealVector > > ( tangent ) );
166 testLambdaMST3D testLMST;
169 res &= testLMST.lambda64ByPoint();
170 res &= testLMST.lambda64Filtered();
171 res &= testLMST.lambdaSinByPoint();
172 res &= testLMST.lambdaExpByPoint();
175 res &= testLMST.lambda64();
176 res &= testLMST.lambdaSin();
177 res &= testLMST.lambdaExp();
180 trace.
emphase() << ( res ?
"Passed." :
"Error." ) << endl;
void beginBlock(const std::string &keyword="")
MyDigitalSurface::ConstIterator ConstIterator
Aim: Simplify creation of Lambda MST tangent estimator.
Aim: This class is a wrapper around ArithmeticalDSS that is devoted to the dynamic recognition of dig...
Aim: model of CBidirectionalRangeFromPoint that adapts any range of elements bounded by two iterators...
void attach(Alias< TSegmentation > segmentComputer)
Aim: Implements method to read a set of points represented in each line of a file.
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: Dynamic recognition of a 3d-digital straight segment (DSS)
Aim: Computes the saturated segmentation, that is the whole set of maximal segments within a range gi...