DGtal 2.2.1
Loading...
Searching...
No Matches
parallelIIShortcuts-viewer.cpp
Go to the documentation of this file.
1
30#include <iostream>
31#include "ConfigExamples.h"
32
33// Helpers
34#include "DGtal/base/Common.h"
35#include "DGtal/helpers/StdDefs.h"
36
37#include "DGtal/kernel/domains/DomainSplitter.h"
38#include "DGtal/helpers/Shortcuts.h"
39#include "DGtal/helpers/ShortcutsGeometry.h"
40
41// Visualization
42#include "DGtal/io/viewers/PolyscopeViewer.h"
43#include "DGtal/io/colormaps/GradientColorMap.h"
44
46
47using namespace DGtal;
48
49// Using standard 3D digital space.
53
54int main()
55{
56
59 std::string filename = examplesPath + std::string("/samples/bunny-128.vol");
60 auto binary_image = SH3::makeBinaryImage(filename, params );
61 auto K = SH3::getKSpace( binary_image, params );
63 auto surfels = SH3::getSurfelRange( surface, params );
65
66 //Parallel
67 const auto axis = 2;
68 const auto nbThreads = 4;
69 trace.beginBlock(std::to_string(nbThreads) + "threads on axis "+std::to_string(axis));
70 auto curv = SHG3::getIIMeanCurvatures( binary_image, surfels,
71 params( "ii-thread-number", nbThreads )
72 ( "ii-split-axis", axis )
73 ( "r-radius", 8 ));
75
76 PolyscopeViewer viewer;
77 std::string objectName = "Surfels";
78 viewer.draw(surfels, objectName); // Draws the object independently
79 viewer.addQuantity(objectName, "Mean curvature", curv);
80
83 HueShadeColorMap<unsigned int> cmap(0,(unsigned int)splits.size());
84 for(auto i=0; i< splits.size(); ++i)
85 {
86 viewer << cmap(i);
87 viewer << splits[i].domain;
88 }
89 viewer.show();
90
91 return 0;
92}
93// //
std::string draw(const Point &p, const std::string &uname="Point_{i}")
void addQuantity(const std::string &oName, const std::string &qName, const Type &value, QuantityScale scale=QuantityScale::UNKNOWN)
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
void show() override
Starts the event loop and display of elements.
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
static Scalars getIIMeanCurvatures(CountedPtr< BinaryImage > bimage, const SurfelRange &surfels, const Parameters &params=parametersGeometryEstimation()|parametersKSpace())
static Parameters defaultParameters()
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
Definition Shortcuts.h:102
static KSpace getKSpace(const Point &low, const Point &up, Parameters params=parametersKSpace())
Definition Shortcuts.h:329
static SurfelRange getSurfelRange(CountedPtr< ::DGtal::DigitalSurface< TDigitalSurfaceContainer > > surface, const Parameters &params=parametersDigitalSurface())
Definition Shortcuts.h:1808
static CountedPtr< DigitalSurface > makeDigitalSurface(CountedPtr< TPointPredicate > bimage, const KSpace &K, const Parameters &params=parametersDigitalSurface())
Definition Shortcuts.h:1470
static Parameters defaultParameters()
Definition Shortcuts.h:200
static CountedPtr< BinaryImage > makeBinaryImage(Domain shapeDomain)
Definition Shortcuts.h:558
void beginBlock(const std::string &keyword="")
double endBlock()
CountedPtr< SH3::DigitalSurface > surface
CountedPtr< SH3::BinaryImage > binary_image
DGtal is the top-level namespace which contains all DGtal functions and types.
Trace trace
Shortcuts< Z3i::KSpace > SH3
ShortcutsGeometry< Z3i::KSpace > SHG3
Splits a domain along one of the domain grid axis.
std::vector< SplitInfo< Domain > > SplitDomainsInfo
KSpace K
AxisDomainSplitter< Domain > splitter