Skip to content

fabienbaldacci/DGtalTools

 
 

Repository files navigation

DGtalTools

DGtalTools is a separate github project containing tools constructed using DGtal library. The main goal of this part is to gather simple and useful tools exploiting the structures and algorithms defined in DGtal. The resulting tools could be useful to:

  • Share and apply DGtal algorithms to various data from different domains.

  • Construct demonstration tools like online demonstrations (as for instance the one of the Image Processing Online (http://www.ipol.im)

  • Simplify comparisons of different algorithms with an single framework.

  • Provide useful tools of digital image related algorithms (extraction of connected components, digital contour/surface extraction, simple visualization tools ... etc).

The source code of the tools can also be used to non DGtal familiar user to show how to include the DGtal library framework directly in their own source code (in complement of DGtal tutorial http://libdgtal.org/doc/stable/tutorials.html).

Organisation

Actually the DGTal project is organized as follows:

Converters

Utilities to convert various simple file formats:

  • convertVol: a simple generic volume image converters (can process actually pgm3d, vol, longvol, raw (for writing)).
  • dicom2vol: convert dicom images into 3d volumic file.
  • freeman2img: transform one or several freeman chains into a pgm file by filling their interior areas.
  • freeman2sdp: convert freeman chain towards a Sequence of Discrete Points.
  • HDF52vol: convert HDF5 to vol file format.
  • img2freeman: to extract a freeman chain contour from a grayscale image.
  • longvol2vol: convert longvol to vol file using different conversion policies.
  • ofs2off: convert OFS mesh format towards a OFF variant.
  • raw2HDF5: convert raw image to HDF5.
  • raw2vol and vol2raw: transform 3D volumes files from (resp. to) raw to vol.
  • sdp2vol: a simple tool to create a 3d vol image from 3d digital points.
  • slice2vol: tool to merge slices into one 3d volumic file.
  • vol2obj: convert a volume file into OBJ format (all voxels belonging to threshold interval)
  • vol2raw: convert a vol to a 8-bit raw file.
  • vol2sdp: a simple tools to extract digital points from 3d vol files.
  • vol2slice: tool to extract all slices from 3d volumic images.
  • volBoundary2obj: export the boundary of a volume file to OBJ format.

DistanceTransform

  • LUTBasedNSDistanceTransform: Compute the 2D translated neighborhood-sequence distance transform of a binary image.
  • CumulativeSequenceTest and RationalBeattySequenceTest: tests from LUTBasedNSDistanceTransform.

Estimators

  • 2dLocalEstimators: program to compare local curvature/tangent estimators on implicit shapes
    • Maximal DSS based estimators
    • Maximal DCA based estimators
    • Binomial convolver based estimators
    • Integral Invariants based estimators
  • 3dLocalEstimators: program to compare 3D local curvature (mean or gaussian) estimators on 3D implicit shapes.
  • curvatureBC: curvature estimator using the Binomial convolver.
  • curvatureMCMS: curvature estimator using the maximal segments cover (to be updated for current DGtal version).
  • curvatureScaleSpaceBCC: a tool to display the curvature scale space of a given contour with the Binomial Convolver Curvature Estimator
  • eulerCharacteristic: bruteforce tool to extract (volumetric) Euler characteristic from volumetric binary object.
  • generic3dNormalEstimators: computes a normal vector field over a digitized 3D implicit surface for several estimators (II|VCM|Trivial|True).
  • lengthEstimators: generate multigrid length estimations of paramteric shapes using DGtal library.
  • statisticsEstimators: compute satistics (L1, L2, Loo) from results of two extimators.
  • tangentBC: tangent estimator using the Binomial convolver.
  • vol2normalField: compute the normal vector field of a given vol file.
Illustration of curvatureScaleSpaceBCC
Illustration of generic3dNormalEstimators on VCM estimator applied on smooth and noisy shapes.

ShapeGenerator

  • contourGenerator: generate multigrid shape contours.
  • shapeGenerator: generate multigrid shape.
grid size = 1 grid size= 0.1 grid size = 0.01
Illustration of the shapeGenerator tools

Visualization

  • 3dCompSurfelData: it computes generic scalar surfel data comparisons with display with surfel association.
  • 3dCurvatureViewer: permits to compute and visualize mean or gaussian curvature of binary shapes.
  • 3dCurvatureViewerNoise: Same as 3dCurvatureViewer, but allow to add some noise to objects.
  • 3dCurveViewer: displays 3D curves with tangential cover and projections onto bounding box.
  • 3dDisplaySurfelData: displays surfel data from SDP file with color attributes given as scalar interpreted as color.
  • 3dHeightMapViewer: display a 2D image as heightmap by using QGLviewer.
  • 3dImageViewer: tools to display 3d slice images (.vol, .pgm3d and dicom with ITK) with QGLViewer.
  • 3dSDPViewer: basic display of a sequence of 3d points (as voxel or sphere) and vectors by using QGLviewer.
  • 3dVolBoundaryViewer: Display the boundary of a volume file by using QGLviewer.
  • 3dVolViewer: volume file (.vol, .pgm3d and dicom with ITK ) viewer with QGLViewer.
  • displayContours: display discrete contours from various format (.fc (freemanchain), .sdp).
  • meshViewer: display 3D mesh from OFS or OFF format.
  • patternTriangulation: a new tool that draws with Board2D the convex hull, the closest-point Delaunay triangulation or the farthest-point Delaunay triangulation of a pattern.
  • sliceViewer: a new 2D and 3D slice viewer from 3D volumic files ( pgm3d, vol, longvol, and DICOM with ITK).

Here are some illustrations of such a tools:

3dCurvatureViewer 3dCurveViewer 3dImageViewer 3dVolViewer
displayContours meshViewer 3dSDPViewer sliceViewer
3dHeightMapViewer 3dCompSurfelData
Volumetric ---------- - 3dVolMarchingCubes: marching cubes form a Vol file. - homotopicThinning3D: ultimate skeleton from vol file. - volAddBorder: add a 1 voxel boundary with value 0 to a vol file. - volCComponentCounter: a simple program to count the number of connected components in a 3D image. - volCrop: Crop an 3D vol image from to points. - volFlip: tool to flip all volume slice images according a given dimension. - volImageMetrics: apply basic statistics on comparaison between two volumetric images (shape defined from thresholds): computes true/false -+, precision, recall f-mean RMSE, PSNR. - volReSample: apply a basic re sampling of a 3D volumetric image (.vol, .longvol, .pgm3d) with a given grid size. - volSegment: Segment volumetric file from a simple threshold which can be set automatically from the otsu estimation. - volShapeMetrics: apply euclidean distance comparisons between two shapes (shape defined from thresholds). - volSubSample: sub sample a vol file (division by 2 in each direction). - volTrValues: apply basic vol image transform from the input values to output values.
homotopicThinning3D volSubSample

How to build the tools

  • use cmake tool to generate a build script (MakeFile, VS project,..) from the CMakeLists.txt
  • DGtal must be installed in your system. Concerning DGtal dependencies (boost, Qt,...), all the dependencies used to compile your DGtal library must be present to build the DGtalTools.

About

Tools associated with DGtal Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published