8#include <opencv2/core.hpp>
9#include <smgl/Node.hpp>
47 ITKMesh::Pointer
mesh_{
nullptr};
51 smgl::InputPort<ITKMesh::Pointer>
input;
55 smgl::OutputPort<ITKMesh::Pointer>
output;
57 smgl::OutputPort<UVMap::Pointer>
uvMap;
64 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
65 -> smgl::Metadata
override;
69 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
88 ITKMesh::Pointer
mesh_{
nullptr};
92 smgl::InputPort<ITKMesh::Pointer>
input;
94 smgl::OutputPort<ITKMesh::Pointer>
output;
96 smgl::OutputPort<UVMap::Pointer>
uvMap;
103 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
104 -> smgl::Metadata
override;
108 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
131 smgl::InputPort<ITKMesh::Pointer>
mesh3D;
133 smgl::InputPort<ITKMesh::Pointer>
mesh2D;
143 -> smgl::Metadata
override;
147 const smgl::Metadata& meta,
148 const filesystem::path& )
override;
194 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
195 -> smgl::Metadata
override;
199 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
227 smgl::InputPort<ITKMesh::Pointer>
mesh;
229 smgl::InputPort<UVMap::Pointer>
uvMap;
233 smgl::OutputPort<PerPixelMap::Pointer>
ppm;
240 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
241 -> smgl::Metadata
override;
245 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
281 -> smgl::Metadata
override;
285 const smgl::Metadata& meta,
286 const filesystem::path& )
override;
340 -> smgl::Metadata
override;
344 const smgl::Metadata& meta,
345 const filesystem::path& )
override;
372 smgl::InputPort<PerPixelMap::Pointer>
ppm;
387 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
388 -> smgl::Metadata
override;
392 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
412 smgl::InputPort<PerPixelMap::Pointer>
ppm;
423 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
424 -> smgl::Metadata
override;
428 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
466 smgl::InputPort<PerPixelMap::Pointer>
ppm;
495 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
496 -> smgl::Metadata
override;
500 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
520 smgl::InputPort<PerPixelMap::Pointer>
ppm;
537 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
538 -> smgl::Metadata
override;
542 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
566 smgl::InputPort<PerPixelMap::Pointer>
ppm;
584 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
585 -> smgl::Metadata
override;
589 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
Parameterize a mesh using ABF++.
smgl::InputPort< bool > useABF
Whether to perform Angle-based flattening computation.
smgl::OutputPort< ITKMesh::Pointer > output
Flattened mesh.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::InputPort< ITKMesh::Pointer > input
Input mesh.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
smgl::OutputPort< UVMap::Pointer > uvMap
UVMap generated from flattened mesh.
Auto-calculate a texturing neighborhood's 3D radius in voxels given the expected layer thickness and ...
smgl::OutputPort< cv::Vec3d > radius
3D neighborhood radius
smgl::InputPort< double > voxelSize
Texturing Volume voxel size (um)
auto serialize_(bool, const filesystem::path &) -> smgl::Metadata override
CalculateNeighborhoodRadiusNode()
smgl::InputPort< double > thickness
Estimated layer thickness (um)
void deserialize_(const smgl::Metadata &meta, const filesystem::path &) override
Generate a texture image using a variety of composite volume filters.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::OutputPort< cv::Mat > texture
Generated texture image.
smgl::InputPort< Generator > generator
Neighborhood generator.
smgl::InputPort< Volume::Pointer > volume
Input Volume.
NeighborhoodGenerator::Pointer Generator
smgl::InputPort< PerPixelMap::Pointer > ppm
Input PerPixelMap.
smgl::InputPort< Filter > filter
Composite filter type.
Calculate the L2 and LInf stretch between a 2D and 3D mesh.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &) override
smgl::InputPort< ITKMesh::Pointer > mesh3D
Input mesh (3D)
auto serialize_(bool, const filesystem::path &) -> smgl::Metadata override
smgl::InputPort< ITKMesh::Pointer > mesh2D
Input mesh (2D)
smgl::OutputPort< Metrics > error
Calculated error metrics.
Generate a Texture by taking the discrete integral (summation) of the neighborhood adjacent to a poin...
smgl::OutputPort< cv::Mat > texture
Generated texture image.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::InputPort< std::uint16_t > clampMax
The maximum intensity value allowed in neighborhood prior to integration.
smgl::InputPort< bool > clampValuesToMax
When enabled, clamp neighborhood intensities to the value specified by setClampMax()
smgl::InputPort< int > exponentialDiffExponent
Set the weighting exponent used by Exponential Difference weighting.
smgl::InputPort< double > exponentialDiffBaseValue
Set the base value for Exponential Difference weighting.
smgl::InputPort< Generator > generator
Neighborhood generator.
smgl::InputPort< bool > exponentialDiffSuppressBelowBase
When enabled, do not integrate intensity values below the base value.
smgl::InputPort< PerPixelMap::Pointer > ppm
Input PerPixelMap.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
smgl::InputPort< Volume::Pointer > volume
Input Volume.
smgl::InputPort< ExpoDiffBaseMethod > exponentialDiffBaseMethod
Set the method used to calculate the Exponential Difference base value.
smgl::InputPort< WeightMethod > weightMethod
Set the weighting method.
smgl::InputPort< WeightDirection > linearWeightDirection
Set the linear weight direction.
NeighborhoodGenerator::Pointer Generator
Generate a Texture by intersection with a Volume.
smgl::InputPort< Volume::Pointer > volume
Input Volume.
smgl::InputPort< PerPixelMap::Pointer > ppm
Input PerPixelMap.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::OutputPort< cv::Mat > texture
Generated texture image.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
IntersectionTextureNode()
Generate a Texture of layered images.
NeighborhoodGenerator::Pointer Generator
smgl::InputPort< PerPixelMap::Pointer > ppm
Input PerPixelMap.
smgl::InputPort< Volume::Pointer > volume
Input Volume.
smgl::InputPort< Generator > generator
Neighborhood generator.
std::vector< cv::Mat > ImageList
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
smgl::OutputPort< ImageList > texture
Generated texture image.
Configure a NeighborhoodGenerator for use by a texturing algorithm.
smgl::OutputPort< Generator::Pointer > generator
Configured neighborhood generator.
smgl::InputPort< Shape > shape
Neighborhood shape.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &) override
smgl::InputPort< Direction > direction
Sampling direction.
auto serialize_(bool, const filesystem::path &) -> smgl::Metadata override
smgl::InputPort< double > interval
Sampling rate along the radius.
NeighborhoodGeneratorNode()
smgl::InputPort< cv::Vec3d > radius
3D neighborhood radius
Base class for neighborhood generating classes.
std::shared_ptr< NeighborhoodGenerator > Pointer
Computes a 2D parameterization of a triangular mesh using orthographic projection.
OrthographicFlatteningNode()
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::InputPort< ITKMesh::Pointer > input
Input mesh.
smgl::OutputPort< ITKMesh::Pointer > output
Flattened mesh.
smgl::OutputPort< UVMap::Pointer > uvMap
UVMap generated from flattened mesh.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
Generates a PerPixelMap from an ITKMesh and a UVMap.
smgl::OutputPort< PerPixelMap::Pointer > ppm
Output PerPixelMap.
smgl::InputPort< ITKMesh::Pointer > mesh
Input mesh.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
PerPixelMap::Pointer ppm_
smgl::InputPort< UVMap::Pointer > uvMap
Input UVMap.
smgl::InputPort< Shading > shading
Pixel normal shading method.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
std::shared_ptr< PerPixelMap > Pointer
Plot per-face L stretch error metrics.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
smgl::InputPort< Metrics > error
Input error metrics.
smgl::InputPort< ColorMap > colorMap
Color map/LUT for visualization.
smgl::OutputPort< cv::Mat > lInfPlot
LInf error image.
smgl::InputPort< bool > drawLegend
Whether to add a legend to the image.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::InputPort< cv::Mat > cellMap
Per-pixel mesh cell assignment, generally from a PerPixelMap.
smgl::OutputPort< cv::Mat > l2Plot
L2 error image.
Generate a Texture using the thickness of the segmented layer.
smgl::InputPort< double > samplingInterval
Set the sampling interval.
smgl::InputPort< VolumetricMask::Pointer > volumetricMask
VolumetricMask for a single layer.
void deserialize_(const smgl::Metadata &meta, const filesystem::path &cacheDir) override
smgl::InputPort< bool > normalizeOutput
Normalize the output image.
auto serialize_(bool useCache, const filesystem::path &cacheDir) -> smgl::Metadata override
smgl::InputPort< Volume::Pointer > volume
Input Volume.
smgl::InputPort< PerPixelMap::Pointer > ppm
Input PerPixelMap.
smgl::OutputPort< cv::Mat > texture
Generated texture image.
std::shared_ptr< UVMap > Pointer
Parameterize a mesh using ABF++.
Generate a texture image using a variety of composite volume filters.
@ Maximum
Select the maximum intensity value.
Generate a Texture by taking the discrete integral (summation) of the neighborhood adjacent to a poin...
ExpoDiffBaseMethod
Exponential difference base calculation method.
WeightMethod
Weighting Methods.
LinearWeightDirection
Linear weight direction.
Generate a Texture by intersection with a Volume.
Generate a Texture of layered images.
Computes a 2D parameterization of a triangular mesh using orthographic projection.
Generates a PerPixelMap from an ITKMesh and a UVMap.
Shading
Pixel normal shading method.
@ Smooth
Each pixel's normal is a linear interpolation of the face's vertex normals. This is similar to Phong ...
Generate a Texture using the thickness of the segmented layer.
ColorMap
Built-in color maps.
Volume Cartographer library
Direction
Neighborhood directional filtering options.
@ Bidirectional
Consider data in both the positive and negative normal.
L stretch error metric output struct.