DGtal
2.2.0
Toggle main menu visibility
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
46
using namespace
DGtal
;
47
48
// Using standard 3D digital space.
49
typedef
Shortcuts<Z3i::KSpace>
SH3;
50
typedef
ShortcutsGeometry<Z3i::KSpace>
SHG3
;
52
53
int
main
()
54
{
55
57
auto
params =
SH3::defaultParameters
() |
SHG3::defaultParameters
();
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 );
61
auto
surface
=
SH3::makeDigitalSurface
(
binary_image
,
K
, 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 ));
73
trace
.
endBlock
();
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
80
AxisDomainSplitter<Z3i::Domain>
splitter
(axis);
81
AxisDomainSplitter<Z3i::Domain>::SplitDomainsInfo
splits =
splitter
(
binary_image
->domain(), nbThreads);
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
// //
DGtal::Display3D::draw
std::string draw(const Point &p, const std::string &uname="Point_{i}")
DGtal::Display3D::addQuantity
void addQuantity(const std::string &oName, const std::string &qName, const Type &value, QuantityScale scale=QuantityScale::UNKNOWN)
DGtal::HueShadeColorMap
Aim: This class template may be used to (linearly) convert scalar values in a given range into a colo...
Definition
HueShadeColorMap.h:91
DGtal::PolyscopeViewer
Definition
PolyscopeViewer.h:57
DGtal::PolyscopeViewer::show
void show() override
Starts the event loop and display of elements.
Definition
PolyscopeViewer.h:73
DGtal::ShortcutsGeometry
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
Definition
ShortcutsGeometry.h:83
DGtal::ShortcutsGeometry< Z3i::KSpace >::getIIMeanCurvatures
static Scalars getIIMeanCurvatures(CountedPtr< BinaryImage > bimage, const SurfelRange &surfels, const Parameters ¶ms=parametersGeometryEstimation()|parametersKSpace())
Definition
ShortcutsGeometry.h:1384
DGtal::ShortcutsGeometry< Z3i::KSpace >::defaultParameters
static Parameters defaultParameters()
Definition
ShortcutsGeometry.h:219
DGtal::Shortcuts
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
Definition
Shortcuts.h:102
DGtal::Shortcuts< Z3i::KSpace >::getKSpace
static KSpace getKSpace(const Point &low, const Point &up, Parameters params=parametersKSpace())
Definition
Shortcuts.h:329
DGtal::Shortcuts< Z3i::KSpace >::getSurfelRange
static SurfelRange getSurfelRange(CountedPtr< ::DGtal::DigitalSurface< TDigitalSurfaceContainer > > surface, const Parameters ¶ms=parametersDigitalSurface())
Definition
Shortcuts.h:1808
DGtal::Shortcuts< Z3i::KSpace >::makeDigitalSurface
static CountedPtr< DigitalSurface > makeDigitalSurface(CountedPtr< TPointPredicate > bimage, const KSpace &K, const Parameters ¶ms=parametersDigitalSurface())
Definition
Shortcuts.h:1470
DGtal::Shortcuts< Z3i::KSpace >::defaultParameters
static Parameters defaultParameters()
Definition
Shortcuts.h:200
DGtal::Shortcuts< Z3i::KSpace >::makeBinaryImage
static CountedPtr< BinaryImage > makeBinaryImage(Domain shapeDomain)
Definition
Shortcuts.h:558
DGtal::Trace::beginBlock
void beginBlock(const std::string &keyword="")
DGtal::Trace::endBlock
double endBlock()
surface
CountedPtr< SH3::DigitalSurface > surface
Definition
dgtalCalculus-geodesic.cpp:66
binary_image
CountedPtr< SH3::BinaryImage > binary_image
Definition
dgtalCalculus-geodesic.cpp:65
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::trace
Trace trace
DGtal::AxisDomainSplitter
Splits a domain along one of the domain grid axis.
Definition
DomainSplitter.h:116
DGtal::AxisDomainSplitter::SplitDomainsInfo
std::vector< SplitInfo< Domain > > SplitDomainsInfo
Definition
DomainSplitter.h:121
K
KSpace K
Definition
testCubicalComplex.cpp:62
splitter
AxisDomainSplitter< Domain > splitter
Definition
testDomainSplitter.cpp:108
main
int main(int, char **)
Definition
testIntegerComputer.cpp:331
SHG3
ShortcutsGeometry< Z3i::KSpace > SHG3
Definition
testIntegralInvariantShortcuts.cpp:47
examples
geometry
surfaces
parallelIIShortcuts-viewer.cpp
Generated on
for DGtal by
1.18.0