DGtal 1.3.0
Loading...
Searching...
No Matches
Functions
testMetricBalls.cpp File Reference
#include <iostream>
#include "DGtal/base/Common.h"
#include "DGtal/helpers/StdDefs.h"
#include "DGtal/geometry/volumes/distance/ExactPredicateLpSeparableMetric.h"
#include "DGtal/geometry/volumes/distance/InexactPredicateLpSeparableMetric.h"
#include "DGtal/io/boards/Board2D.h"
#include "DGtal/kernel/BasicPointPredicates.h"
#include "DGtal/geometry/volumes/distance/DistanceTransformation.h"
#include "DGtal/io/colormaps/HueShadeColorMap.h"

Go to the source code of this file.

Functions

template<int norm>
bool testExactMetricBalls ()
 
bool testInexactMetricBalls (double norm)
 
int main (int argc, char **argv)
 

Detailed Description

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author
David Coeurjolly (david.nosp@m..coe.nosp@m.urjol.nosp@m.ly@l.nosp@m.iris..nosp@m.cnrs.nosp@m..fr ) Laboratoire d'InfoRmatique en Image et Systèmes d'information - LIRIS (CNRS, UMR 5205), CNRS, France
Date
2012/11/11

Functions for testing class MetricBalls.

This file is part of the DGtal library.

Definition in file testMetricBalls.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 121 of file testMetricBalls.cpp.

122{
123 trace.beginBlock ( "Testing class MetricBalls" );
124 trace.info() << "Args:";
125 for ( int i = 0; i < argc; ++i )
126 trace.info() << " " << argv[ i ];
127 trace.info() << endl;
128
129 bool res = testExactMetricBalls<2>()
130 && testExactMetricBalls<1>()
131 && testExactMetricBalls<4>()
132 && testExactMetricBalls<8>()
136 ; // && ... other tests
137 trace.emphase() << ( res ? "Passed." : "Error." ) << endl;
138 trace.endBlock();
139 return res ? 0 : 1;
140}
void beginBlock(const std::string &keyword="")
std::ostream & emphase()
std::ostream & info()
double endBlock()
Trace trace
Definition: Common.h:154
bool testInexactMetricBalls(double norm)

References DGtal::Trace::beginBlock(), DGtal::Trace::emphase(), DGtal::Trace::endBlock(), DGtal::Trace::info(), testInexactMetricBalls(), and DGtal::trace.

◆ testExactMetricBalls()

template<int norm>
bool testExactMetricBalls ( )

Definition at line 52 of file testMetricBalls.cpp.

53{
54 unsigned int nbok = 0;
55 unsigned int nb = 0;
56
60
61 set.insertNew(Z2i::Point(32,32));
63 // SetPredicate<Z2i::DigitalSet> setpred(set);
64 NegPred predicate( set );
65
67 Metric metric;
68 DT dt( &domain, &predicate, &metric);
69
70
71 Board2D board;
74 Display2DFactory::drawImage<Hue> (board, dt,
75 0.0,
76 32*sqrt(2)/2.0);
77
78 std::string title = "image-ball-" + boost::lexical_cast<string>( norm )+".png" ;
79#ifdef WITH_CAIRO
80 board.saveCairo(title.c_str(), Board2D::CairoPNG );
81#endif
82 return nbok == nb;
83}
Aim: This class specializes a 'Board' class so as to display DGtal objects more naturally (with <<)....
Definition: Board2D.h:71
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Aim: Implementation of the linear in time distance transformation for separable metrics.
Aim: implements separable l_p metrics with exact predicates.
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
void setUnit(Unit unit)
Definition: Board.cpp:240
void saveCairo(const char *filename, CairoType type=CairoPNG, PageSize size=Board::BoundingBox, double margin=10.0) const
Definition: Board.cpp:1139
Aim: The predicate returns true when the point predicate given at construction return false....
Domain domain

References domain, DGtal::DigitalSetByAssociativeContainer< TDomain, TContainer >::insertNew(), LibBoard::Board::saveCairo(), LibBoard::Board::setUnit(), and LibBoard::Board::UCentimeter.

◆ testInexactMetricBalls()

bool testInexactMetricBalls ( double  norm)

Definition at line 85 of file testMetricBalls.cpp.

86{
87 unsigned int nbok = 0;
88 unsigned int nb = 0;
89
93
94 set.insertNew(Z2i::Point(32,32));
96 // SetPredicate<Z2i::DigitalSet> setpred(set);
97 NegPred predicate( set );
98
100 Metric metric(norm);
101 DT dt( &domain, &predicate, &metric);
102
103
104 Board2D board;
107 Display2DFactory::drawImage<Hue> (board, dt,
108 0.0,
109 32*sqrt(2)/2.0);
110
111 std::string title = "image-ball-" + boost::lexical_cast<string>( norm )+".png" ;
112#ifdef WITH_CAIRO
113 board.saveCairo(title.c_str(), Board2D::CairoPNG );
114#endif
115 return nbok == nb;
116}
Aim: implements separable l_p metrics with approximated predicates.

References domain, DGtal::DigitalSetByAssociativeContainer< TDomain, TContainer >::insertNew(), LibBoard::Board::saveCairo(), LibBoard::Board::setUnit(), and LibBoard::Board::UCentimeter.

Referenced by main().