DGtal 2.2.0
Loading...
Searching...
No Matches
parallelIIShortcuts-viewer.cpp
Go to the documentation of this file.
1
16
28
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/helpers/Shortcuts.h"
38#include "DGtal/helpers/ShortcutsGeometry.h"
39
40// Visualization
41#include "DGtal/io/viewers/PolyscopeViewer.h"
42#include "DGtal/io/colormaps/GradientColorMap.h"
43
45
46using namespace DGtal;
47
48// Using standard 3D digital space.
52
53int main()
54{
55
58 std::string filename = examplesPath + std::string("/samples/bunny-128.vol");
59 auto binary_image = SH3::makeBinaryImage(filename, params );
60 auto K = SH3::getKSpace( binary_image, params );
62 auto surfels = SH3::getSurfelRange( surface, params );
64
65 //Parallel
66 const auto axis = 2;
67 const auto nbThreads = 4;
68 trace.beginBlock(std::to_string(nbThreads) + "threads on axis "+std::to_string(axis));
69 auto curv = SHG3::getIIMeanCurvatures( binary_image, surfels,
70 params( "ii-thread-number", nbThreads )
71 ( "ii-split-axis", axis )
72 ( "r-radius", 8 ));
74
75 PolyscopeViewer viewer;
76 std::string objectName = "Surfels";
77 viewer.draw(surfels, objectName); // Draws the object independently
78 viewer.addQuantity(objectName, "Mean curvature", curv);
79
82 HueShadeColorMap<unsigned int> cmap(0,(unsigned int)splits.size());
83 for(auto i=0; i< splits.size(); ++i)
84 {
85 viewer << cmap(i);
86 viewer << splits[i].domain;
87 }
88 viewer.show();
89
90 return 0;
91}
92// //
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())
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
Splits a domain along one of the domain grid axis.
std::vector< SplitInfo< Domain > > SplitDomainsInfo
KSpace K
AxisDomainSplitter< Domain > splitter
int main(int, char **)
ShortcutsGeometry< Z3i::KSpace > SHG3