34 #include "DGtal/base/Common.h"
35 #include "ConfigTest.h"
36 #include "DGtalCatch.h"
37 #include "DGtal/helpers/StdDefs.h"
38 #include "DGtal/helpers/Shortcuts.h"
39 #include "DGtal/helpers/ShortcutsGeometry.h"
44 using namespace DGtal;
53 TEST_CASE(
"Testing IntegralInvariant Shortcuts API" )
55 auto params = SH3::defaultParameters() | SHG3::defaultParameters() | SHG3::parametersGeometryEstimation();
56 params(
"polynomial",
"goursat" )(
"gridstep", 1. );
57 auto implicit_shape = SH3::makeImplicitShape3D ( params );
58 auto digitized_shape = SH3::makeDigitizedImplicitShape3D( implicit_shape, params );
59 auto binary_image = SH3::makeBinaryImage( digitized_shape, params );
60 auto K = SH3::getKSpace( params );
61 auto embedder = SH3::getCellEmbedder(
K );
63 auto surfels = SH3::getSurfelRange(
surface, params );
65 trace.
info() <<
"Nb surfels= " << surfels.size() << std::endl;
68 params(
"r-radius", 3.0);
71 auto Tcurv = SHG3::getIIPrincipalCurvaturesAndDirections(
binary_image, surfels, params);
72 auto Kcurv = SHG3::getIIGaussianCurvatures(
binary_image, surfels, params);
74 std::vector<double> k1,k2,G;
75 for(
auto &result: Tcurv)
77 k1.push_back( std::get<0>(result) );
78 k2.push_back( std::get<1>(result) );
79 G.push_back( ( std::get<0>(result) * std::get<1>(result)) );
82 SECTION(
"Testing that mean/Gaussian/tensor curvature shortucut values match")
84 for(std::size_t i = 0; i < G.size(); ++i)
85 REQUIRE( Kcurv[i] == Approx( G[i] ) );
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
Aim: This class is used to simplify shape and surface creation. With it, you can create new shapes an...
CountedPtr< SH3::DigitalSurface > surface
CountedPtr< SH3::BinaryImage > binary_image
DGtal is the top-level namespace which contains all DGtal functions and types.
TEST_CASE("Testing IntegralInvariant Shortcuts API")
Shortcuts< Z3i::KSpace > SH3
ShortcutsGeometry< Z3i::KSpace > SHG3
SECTION("Testing constant forward iterators")
REQUIRE(domain.isInside(aPoint))