User Tools

Site Tools


cpp:max-tree

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cpp:max-tree [2022/06/22 11:52] francoiscpp:max-tree [2022/07/01 12:09] (current) francois
Line 2: Line 2:
  
 Il est possible d'écrire un programme dédié à la construction d'un arbre en utilisant la bibliothèque Triskele. Il est possible d'écrire un programme dédié à la construction d'un arbre en utilisant la bibliothèque Triskele.
-Ce programme prend arguments :+ 
 + 
 +<WRAP center round download 60%> 
 +Voici un exemple tiré des sources {{ :cpp:testmaxtree.cpp |}} 
 +</WRAP> 
 +Ce programme prend arguments
   * le nom du fichier contenant l'image en entrée qui construira un arbre MAX   * le nom du fichier contenant l'image en entrée qui construira un arbre MAX
 +  * le nom du fichier qui contiendra l'image produite
   * une liste de valeurs (séparée par des virgules) pour réaliser les élagages   * une liste de valeurs (séparée par des virgules) pour réaliser les élagages
- 
  
 Il faut commencer par les déclarations d'usage. Il faut commencer par les déclarations d'usage.
Line 48: Line 53:
 <code c++> <code c++>
 static const int GeoDimT (2); static const int GeoDimT (2);
-static TreeType treeType = MAX;+static const TreeType treeType = MAX;
 </code> </code>
  
Line 83: Line 88:
   inputImage.readImage ();   inputImage.readImage ();
   // get image size (width x height)   // get image size (width x height)
-  Size<GeoDimT> size (inputImage.getSize ());+  const Size<GeoDimT> size (inputImage.getSize ());
  
   IImage<GeoDimT> outputImage (argv[2]);   IImage<GeoDimT> outputImage (argv[2]);
Line 91: Line 96:
 </code> </code>
  
-Enfin nous réalisons le traitement en appelant la fonction ''filtre'' avec le bon type.+Enfin nous réalisons le traitement en invoquant la fonction ''filtre'' avec le bon type.
 <code c++> <code c++>
   switch (inputImage.getDataType ()) {   switch (inputImage.getDataType ()) {
Line 134: Line 139:
   Raster<InPixelT, GeoDimT> raster;   Raster<InPixelT, GeoDimT> raster;
   // true image size (width x height)   // true image size (width x height)
-  Size<GeoDimT> size (inputImage.getSize ());+  const Size<GeoDimT> size (inputImage.getSize ());
   // read first band (0) in 2D mode from origine [0,0] to end [width, height].   // read first band (0) in 2D mode from origine [0,0] to end [width, height].
   inputImage.readBand (raster, 0, NullPoint2D, size);   inputImage.readBand (raster, 0, NullPoint2D, size);
Line 143: Line 148:
 <code c++> <code c++>
   // no border (i.e. all pixels are take in account)   // no border (i.e. all pixels are take in account)
-  Border<GeoDimT> border (size, false);+  const Border<GeoDimT> border (size, false);
   // neighbors take in account (default connectivity C4)   // neighbors take in account (default connectivity C4)
-  GraphWalker<GeoDimT> graphWalker (border);+  const GraphWalker<GeoDimT> graphWalker (border);
   // tree builder base on raster, connectivity and type of tree   // tree builder base on raster, connectivity and type of tree
   ArrayTreeBuilder<PixelT, PixelT, GeoDimT> atb (raster, graphWalker, treeType);   ArrayTreeBuilder<PixelT, PixelT, GeoDimT> atb (raster, graphWalker, treeType);
Line 168: Line 173:
 <code c++> <code c++>
   // create area attribute   // create area attribute
-  AreaAttributes<GeoDimT> areaAttributes (tree);+  const AreaAttributes<GeoDimT> areaAttributes (tree);
 </code> </code>
  
Line 174: Line 179:
 <code c++> <code c++>
   // output channels count   // output channels count
-  DimChannel outputChannelCount (thresholds.size ());+  const DimChannel outputChannelCount (thresholds.size ());
   // number of pixels (width x height)   // number of pixels (width x height)
-  DimImg pixelsCount (size.getPixelsCount ());+  const DimImg pixelsCount (size.getPixelsCount ());
 </code> </code>
  
cpp/max-tree.1655898768.txt.gz · Last modified: 2022/06/22 11:52 by francois