DGtal  0.9.4beta
Todo List
Global DGtal::ArrayImageIterator< TIterableClass >::advance (std::ptrdiff_t n)
Find a more efficient implementation ...
Global DGtal::ArrayImageIterator< TIterableClass >::Point
or in template with default value ?
Global DGtal::ArrayImageIterator< TIterableClass >::Reference
hard-coded, but must be later set as template.
Global DGtal::Bits::bitString (T value, unsigned nbBits=0)
Check that T is CInteger.
Global DGtal::BLUELocalLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::CompareLocalEstimators< TFirstEsimator, TSecondEstimator >::compare (FirstEstimator &aFirstEstimator, SecondEstimator &aSecondEstimator, const ConstIterator &it)
Assert firstestimator::Quantity==secondestimator::Quantity
Class DGtal::concepts::Board3DTo2D< S, KS >

ImageContainerByHashTree does not implement setStyle(display &).

ImageContainerByHashTree does not implement defaultStyle(std::string&)const.

Class DGtal::concepts::CDigitalSet< T >
add boost::Container ? Not for now, since coding style do not match with STL (e.g. Iterator instead of iterator).
Class DGtal::concepts::CDigitalSurfaceTracker< T >
Complete documentation
Class DGtal::concepts::CDomain< T >
Complete domain checking.
Global DGtal::concepts::CDomainArchetype< TSpace >::DigitalSet
DigitalSet
Global DGtal::concepts::CDomainArchetype< TSpace >::Predicate
DigitalSetPredicate
Class DGtal::concepts::CDrawableWithBoard2D< T >

ImageContainerByHashTree does not implement setStyle(Board2D &).

ImageContainerByHashTree does not implement defaultStyle(std::string&)const.

Class DGtal::concepts::CDrawableWithViewer3D< T, S, KS >

ImageContainerByHashTree does not implement setStyle(display &).

ImageContainerByHashTree does not implement defaultStyle(std::string&)const.

Class DGtal::concepts::CLinearAlgebra< V, M >

There should be two types of vector: input vector type and output vector type.

This works fine for dynamic vector spaces, but not so much for static sized vectors and matrices.

Class DGtal::concepts::Display3D< S, KS >

ImageContainerByHashTree does not implement setStyle(display &).

ImageContainerByHashTree does not implement defaultStyle(std::string&)const.

Class DGtal::ContourHelper
Improve class.
Global DGtal::CowPtr< T >::CowPtr (const CountedPtr< T > &r)
JOL: check this.
Class DGtal::DigitalSurface< TDigitalSurfaceContainer >
Should be a model of CCubicalComplex
Class DGtal::DigitalSurfaceEmbedderWithNormalVectorEstimator< TDigitalSurfaceEmbedder, TNormalVectorEstimator >
assert dimensions of space, embedder and implicit function.
Class DGtal::DrawableWithBoard2D
(JOL) Put this class elsewhere.
Class DGtal::DrawWithBoardModifier
merge DrawableWithBoard2D and DrawWithBoardModifier
Global DGtal::DSSLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::EigenDecomposition< TN, TComponent, TMatrix >::decomposeQL (Matrix &V, Vector &d, Vector e)
Sorting the eigenvalues is done by selection sort. This could be improved for big values of TN.
Class DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >
doc here
Global DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::checkIntegrity (HashKey key=ROOT_KEY, bool leafAbove=false) const
)
Global DGtal::FPLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Class DGtal::GraphVisitorRange< TGraphVisitor >
Complete boost::range_iterator<> accordingly.
Class DGtal::GraphVisitorRange< TGraphVisitor >::GenericConstIterator< TAccessor >
Complete boost::iterator_traversal<> accordingly.
Global DGtal::HyperRectDomain_Iterator< TPoint >::value_type
construct a RANDOM-ACCESS iterator
Global DGtal::HyperRectDomain_subIterator< TPoint >::value_type
construct a RANDOM-ACCESS iterator
Global DGtal::ImageContainerBySTLVector< TDomain, TValue >::SpanIterator::iterator_category
construct a RANDOM-ACCESS iterator
Class DGtal::ImageLinearCellEmbedder< TKSpace, TImage, TEmbedder >
assert dimensions of space, embedder and implicit function.
Class DGtal::ImplicitFunctionDiff1LinearCellEmbedder< TKSpace, TImplicitFunctionDiff1, TEmbedder >
assert dimensions of space, embedder and implicit function.
Class DGtal::ImplicitFunctionLinearCellEmbedder< TKSpace, TImplicitFunction, TEmbedder >
assert dimensions of space, embedder and implicit function.
Global DGtal::IntegerComputer< TInteger >::getEuclideanDiv (Integer &q, Integer &r, IntegerParamType a, IntegerParamType b) const
Specialize it for GMP as mpz_fdiv_qr (q.get_mpz_t(), r.get_mpz_t(), a.get_mpz_t(), b.get_mpz_t());
Global DGtal::L1LengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::LatticePolytope2D< TSpace, TSequence >::computeConvexHullBorder (OutputIterator itOut, const Point &pointRefC1, const Point &pointRefC3, const HalfSpace &hs1, const HalfSpace &hs2, const HalfSpace &hs3) const
proper parameters documentation.
Global DGtal::LatticePolytope2D< TSpace, TSequence >::getIncludedDigitalPoints (DigitalSet &aSet) const
this method is for now not efficient and is just for visualization purposes.
Global DGtal::LightSternBrocot< TInteger, TQuotient, TMap >::Fraction::father (Quotient m) const
Do it in O(1)... but require to change the data structure.
Class DGtal::MeasureOfStraightLines
Create a vector<Point> interface
Global DGtal::MLPLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::MPolynomial< n, TRing, TAlloc >::operator* (const MPolynomial &p) const
Multiplication could be optimized for monovariate polynomials.
Class DGtal::NormalVectorEstimatorLinearCellEmbedder< TDigitalSurface, TNormalVectorEstimator, TEmbedder >
assert dimensions of space, embedder and implicit function.
Global DGtal::RosenProffittLocalLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::SimpleMatrix< TComponent, TM, TN >::myCofactorCoefs
should be static
Global DGtal::SternBrocot< TInteger, TQuotient >::Fraction::father (Quotient m) const
Do it in O(1)... but require to change the data structure.
Class DGtal::Trace
Create a default constructor on TraceWriterTerm(std::cerr)
Class DGtal::TraceWriterTerm
Detect if the terminal has color capabilities
Class DGtal::TransformedPrism
add a constructor to automatically define the shift and the scale according a given associated SCell.
Global DGtal::TransformedPrism::mySurfel
FIX this member
Class DGtal::TrueDigitalSurfaceLocalEstimator< TKSpace, TShape, TGeometricFunctor >

add precise concept CShape

for now we use a CanonicSCellEmbedder times the gridstep to embed surfels.

Global DGtal::TwoStepLocalLengthEstimator< TConstIterator >::ConstIterator
CONCEPT CHECK sur ConstIterator
Global DGtal::Viewer3D< TSpace, TKSpace >::glCreateListPolygons (const std::vector< VectorPolygon > &aVectPolygon, unsigned int idList)
change the structure to support interactions as QuadMap do. See Limited interaction when using selection with QGLViewer Viewer3D stream mechanism for more details.
Global DGtal::Viewer3D< TSpace, TKSpace >::glCreateListPolygonsWired (const std::vector< VectorPolygon > &aVectPolygon, unsigned int idList)
change the structure to support interactions as QuadMap do. See Limited interaction when using selection with QGLViewer Viewer3D stream mechanism for more details.
Global DGtal::Viewer3D< TSpace, TKSpace >::glCreateListTriangles (const std::vector< VectorTriangle > &aVectTriangle, unsigned int idList)
change the structure to support interactions as QuadMap do. See Limited interaction when using selection with QGLViewer Viewer3D stream mechanism for more details.
Global DGtal::Viewer3D< TSpace, TKSpace >::glCreateListTrianglesWired (const std::vector< VectorTriangle > &aVectTriangle, unsigned int idList)
change the structure to support interactions as QuadMap do. See Limited interaction when using selection with QGLViewer Viewer3D stream mechanism for more details.
Namespace DGtal::Z2i
Once stabilized, provide a Z2l (for int64) and a Z2I (for arbitrary integers).
Namespace DGtal::Z3i
Once stabilized, provide a Z3l (for int64) and a Z3I (for arbitrary integers).
Page Digital surfaces
The concepts concepts::CUndirectedSimpleLocalGraph and concepts::CUndirectedSimpleGraph are susceptible to evolve to meet other standards.
Page Irreducible fraction, continued fractions
Arithmetic operations will soon be implemented with usual arithmetic operations on numerators and denominators. Furthermore, a dedicated system for performing arithmetic operations using only quotients (and guaranteed O(log(k)) complexity) is also under development.
Page Tutorial Image -> ImageAdapter: some simple image manipulations""

Exercise Construct a simple file format converter starting from this file template:

1 ///////////////////////////////////////////////////////////////////////////////
2 #include "DGtal/base/Common.h"
3 #include "DGtal/images/ImageContainerBySTLVector.h"
4 #include "DGtal/io/readers/GenericReader.h"
5 #include "DGtal/io/writers/GenericWriter.h"
6 #include "DGtal/helpers/StdDefs.h"
7 
8 #include <boost/program_options/options_description.hpp>
9 #include <boost/program_options/parsers.hpp>
10 #include <boost/program_options/variables_map.hpp>
11 
12 ///////////////////////////////////////////////////////////////////////////////
13 
14 using namespace std;
15 using namespace DGtal;
16 using namespace Z3i;
17 
18 ///////////////////////////////////////////////////////////////////////////////
19 namespace po = boost::program_options;
20 
21 
22 int main( int argc, char** argv )
23 {
24 
25  typedef ImageContainerBySTLVector<Z2i::Domain, unsigned char> Image2D;
26 
27  // parse command line ----------------------------------------------
28  po::options_description general_opt ( "Allowed options are: " );
29  general_opt.add_options()
30  ( "help,h", "display this message." )
31  ( "input,i", po::value<std::string>(), "Input vol file." )
32  ( "output,o", po::value<string>(),"Output OFF filename." );
33 
34 
35  bool parseOK=true;
36  po::variables_map vm;
37  try{
38  po::store(po::parse_command_line(argc, argv, general_opt), vm);
39  }catch(const std::exception& ex){
40  parseOK=false;
41  trace.info()<< "Error checking program options: "<< ex.what()<< endl;
42  }
43  po::notify ( vm );
44  if (!parseOK || vm.count ( "help" ) ||argc<=1 || !vm.count("input")||! vm.count("output"))
45  {
46  trace.info() << "exercise ImageIO."<<std::endl
47  << std::endl << "Basic usage: "<<std::endl
48  << "\tvol2off --input <volFileName> --o <OffOutputFileName> "<<std::endl
49  << general_opt << "\n";
50  return 0;
51  }
52 
53 
54 
55  return 0;
56 }

Complementary exercise:

  • Apply the same slice extraction on axis X and Y intersecting the center point of the 3D Image.

Exercise: Construct a program able to extract an 2D image from a given volume and 3 3D points. For instance you can to extract the 2D image defined by the points:

  • Origin (120, 150, 10)
  • Upper point1 (220, 220, 10)
  • Upper point2 (120, 150, 50) You should obtain the following 2D image:
    lobsterExtracted.png
    Result of slice image number 20 on Z axis.