8#include <opencv2/core.hpp>
9#include <smgl/Node.hpp>
46 ITKMesh::Pointer
mesh_{
nullptr};
50 smgl::InputPort<ITKMesh::Pointer>
input;
56 smgl::OutputPort<ITKMesh::Pointer>
output;
58 smgl::OutputPort<UVMap::Pointer>
uvMap;
65 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
66 -> smgl::Metadata
override;
70 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
89 ITKMesh::Pointer
mesh_{
nullptr};
93 smgl::InputPort<ITKMesh::Pointer>
input;
95 smgl::OutputPort<ITKMesh::Pointer>
output;
97 smgl::OutputPort<UVMap::Pointer>
uvMap;
104 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
105 -> smgl::Metadata
override;
109 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
132 smgl::InputPort<ITKMesh::Pointer>
mesh3D;
134 smgl::InputPort<ITKMesh::Pointer>
mesh2D;
144 -> smgl::Metadata
override;
148 const smgl::Metadata& meta,
149 const filesystem::path& )
override;
195 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
196 -> smgl::Metadata
override;
200 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
228 smgl::InputPort<ITKMesh::Pointer>
mesh;
230 smgl::InputPort<UVMap::Pointer>
uvMap;
234 smgl::OutputPort<PerPixelMap::Pointer>
ppm;
241 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
242 -> smgl::Metadata
override;
246 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
282 -> smgl::Metadata
override;
286 const smgl::Metadata& meta,
287 const filesystem::path& )
override;
341 -> smgl::Metadata
override;
345 const smgl::Metadata& meta,
346 const filesystem::path& )
override;
373 smgl::InputPort<PerPixelMap::Pointer>
ppm;
388 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
389 -> smgl::Metadata
override;
393 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
413 smgl::InputPort<PerPixelMap::Pointer>
ppm;
424 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
425 -> smgl::Metadata
override;
429 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
467 smgl::InputPort<PerPixelMap::Pointer>
ppm;
496 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
497 -> smgl::Metadata
override;
501 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
521 smgl::InputPort<PerPixelMap::Pointer>
ppm;
538 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
539 -> smgl::Metadata
override;
543 const smgl::Metadata& meta,
const filesystem::path& cacheDir)
override;
567 smgl::InputPort<PerPixelMap::Pointer>
ppm;
585 auto serialize_(
bool useCache,
const filesystem::path& cacheDir)
586 -> smgl::Metadata
override;
590 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< ABF::Solver > solver
The numerical solver method.
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.