59 float background_value = 0.f,
60 float fill_value = 0.f);
75Array
border(
const Array &array,
int ir);
90Array
closing(
const Array &array,
int ir);
105 float k_smooth_max = 0.f);
126 float transition_ratio = 0.1f);
142Array
dilation(
const Array &array,
int ir);
191 bool return_squared_distance =
false);
216 bool return_squared_distance =
false);
240 bool return_squared_distance =
false);
257 Mat<glm::ivec2> &closest,
258 bool return_squared_distance =
false);
276Array
erosion(
const Array &array,
int ir);
296 float fill_value = 1.f,
297 float background_value = 0.f);
382Array
opening(
const Array &array,
int ir);
397 float k_smooth_min = 0.f);
421 float k_smooth_min = 0.f);
445 float k_smooth_max = 0.f);
485 bool zero_at_borders =
true,
513 bool zero_at_borders =
true);
535 float background_value = 0.f);
606Array
border(
const Array &array,
int ir);
609Array
closing(
const Array &array,
int ir);
614 float k_smooth_max = 0.f);
619 float transition_ratio = 0.1f);
622Array
dilation(
const Array &array,
int ir);
650 bool return_squared_distance =
false);
653Array
erosion(
const Array &array,
int ir);
668Array
opening(
const Array &array,
int ir);
673 float k_smooth_min = 0.f);
679 float k_smooth_min = 0.f);
685 float k_smooth_max = 0.f);
690 bool zero_at_borders =
true,
706Array
skeleton(
const Array &array,
bool zero_at_borders =
true);
Header file defining basic vector and matrix manipulation classes.
Declaration of the Array class for 2D floating-point arrays with various mathematical operations and ...
Array class, helper to manipulate 2D float array with "(i, j)" indexing.
Definition array.hpp:32
Definition blending.hpp:186
Array opening_by_reconstruction(const Array &array, int ir, float k_smooth_min=0.f)
See hmap::opening_by_reconstruction.
Definition morphology_gpu.cpp:105
Array distance_transform_jfa(const Array &array, bool return_squared_distance=false)
Return the Euclidean distance transform.
Definition distance_transform_jfa.cpp:16
Array border(const Array &array, int ir)
See hmap::border.
Definition morphology_gpu.cpp:22
Array reconstruction_by_dilation(const Array &marker, const Array &mask, int ir, float k_smooth_min=0.f)
See hmap::reconstruction_by_dilation.
Definition morphology_gpu.cpp:111
Array closing_by_reconstruction(const Array &array, int ir, float k_smooth_max=0.f)
See hmap::closing_by_reconstruction.
Definition morphology_gpu.cpp:32
Array skeleton(const Array &array, bool zero_at_borders=true)
See hmap::skeleton.
Definition morphology_gpu.cpp:195
Array relative_distance_from_skeleton(const Array &array, int ir_search, bool zero_at_borders=true, int ir_erosion=1)
See hmap::relative_distance_from_skeleton.
Definition morphology_gpu.cpp:186
Array morphological_top_hat(const Array &array, int ir)
See hmap::morphological_top_hat.
Definition morphology_gpu.cpp:95
Array morphological_black_hat(const Array &array, int ir)
See hmap::morphological_black_hat.
Definition morphology_gpu.cpp:77
Array closing(const Array &array, int ir)
See hmap::closing.
Definition morphology_gpu.cpp:27
Array signed_distance_transform(const Array &array, int prefilter_ir=0)
See hmap::signed_distance_transform.
Definition signed_curvature_from_distance.cpp:43
Array contour_smoothing(const Array &array, int ir, float transition_ratio=0.1f)
See hmap::contour_smoothing.
Definition morphology_gpu.cpp:38
Array dilation_expand_border_only(const Array &array, int ir)
See hmap::dilation_expand_border_only.
Definition morphology_gpu.cpp:56
Array reconstruction_by_erosion(const Array &marker, const Array &mask, int ir, float k_smooth_max=0.f)
See hmap::reconstruction_by_erosion.
Definition morphology_gpu.cpp:136
Array opening(const Array &array, int ir)
See hmap::opening.
Definition morphology_gpu.cpp:100
Array dilation(const Array &array, int ir)
See hmap::dilation.
Definition morphology_gpu.cpp:51
Array erosion(const Array &array, int ir)
See hmap::erosion.
Definition morphology_gpu.cpp:72
Array morphological_laplacian(const Array &array, int ir)
See hmap::morphological_laplacian.
Definition morphology_gpu.cpp:88
Array morphological_operators(const Array &array, int ir, MorphologyOperation operation)
See hmap::morphological_operators.
Definition wrapper.cpp:58
Array morphological_gradient(const Array &array, int ir)
See hmap::morphological_gradient.
Definition morphology_gpu.cpp:82
Array signed_curvature_from_distance(const Array &array, int prefilter_ir=0)
See hmap::signed_curvature_from_distance.
Definition signed_curvature_from_distance.cpp:37
Definition algebra.hpp:23
Array morphological_gradient(const Array &array, int ir)
Apply a morphological gradient algorithm to the input array using a square structure.
Definition morphology.cpp:196
Array morphological_black_hat(const Array &array, int ir)
Apply a morphological black hat algorithm to the input array using a square structure.
Definition morphology.cpp:191
Array morphological_top_hat(const Array &array, int ir)
Apply a morphological top hat algorithm to the input array using a square structure.
Definition morphology.cpp:208
Array distance_transform_approx(const Array &array, bool return_squared_distance=false)
Calculates an approximate distance transform of the input array.
Definition distance_transform_approx.cpp:13
Array contour_smoothing(const Array &array, int ir, float transition_ratio=0.1f)
Smooth contour boundaries of segmented regions.
Definition morphology.cpp:72
Array dilation_expand_border_only(const Array &array, int ir)
Expand non-zero regions of an array by morphological dilation, while preserving the original non-zero...
Definition morphology.cpp:90
Array reconstruction_by_erosion(const Array &marker, const Array &mask, int ir, float k_smooth_max=0.f)
Perform morphological reconstruction by erosion.
Definition morphology.cpp:278
MorphologyOperation
Types of base morphology operators.
Definition morphology.hpp:722
@ MO_EROSION
Shrink structures (local minimum).
Definition morphology.hpp:726
@ MO_LAPLACIAN
Second-order operator highlighting ridges and.
Definition morphology.hpp:733
@ MO_GRADIENT
Difference between dilation and erosion (edge.
Definition morphology.hpp:731
@ MO_OPENING
Erosion followed by dilation (removes small objects).
Definition morphology.hpp:727
@ MO_CLOSING
Dilation followed by erosion (fills small holes).
Definition morphology.hpp:724
@ MO_BORDER
Extract border of structures.
Definition morphology.hpp:723
@ MO_BLACK_HAT
Difference between closing and input (dark features).
Definition morphology.hpp:728
@ MO_OPENING_BY_RECONSTRUCTION
Definition morphology.hpp:736
@ MO_TOP_HAT
Difference between input and opening (bright.
Definition morphology.hpp:729
@ MO_DILATION
Expand structures (local maximum).
Definition morphology.hpp:725
@ MO_CLOSING_BY_RECONSTRUCTION
Definition morphology.hpp:735
Array opening_by_reconstruction(const Array &array, int ir, float k_smooth_min=0.f)
Apply opening by reconstruction to the input array.
Definition morphology.cpp:218
Array distance_transform(const Array &array, bool return_squared_distance=false)
Return the Euclidean distance transform.
Definition distance_transform.cpp:24
Array skeleton(const Array &array, const Array &skeleton, bool zero_at_borders=true)
Computes a skeletonized version of an array.
Array dilation_expand_min_value_border_only(const Array &array)
Definition morphology.cpp:106
Array reconstruction_by_dilation(const Array &marker, const Array &mask, int ir, float k_smooth_min=0.f)
Perform morphological reconstruction by dilation.
Definition morphology.cpp:253
Array relative_distance_from_skeleton(const Array &array, int ir_search, bool zero_at_borders=true, int ir_erosion=1)
Computes the relative distance of each non-zero cell in a binary array from the skeleton and border.
Definition morphology.cpp:413
Array remove_endpoints(const Array &array, int iterations=1, float background_value=0.f)
Removes endpoint-like pixels from a binary/weighted array.
Definition morphology.cpp:422
Array closing(const Array &array, int ir)
Apply a closing algorithm to the input array using a square structure.
Definition morphology.cpp:61
Array distance_transform_with_closest(const Array &array, Mat< glm::ivec2 > &closest, bool return_squared_distance=false)
Return the Euclidean distance transform.
Definition distance_transform.cpp:103
Array erosion(const Array &array, int ir)
Apply an erosion algorithm to the input array using a square structure.
Definition morphology.cpp:145
DistanceTransformType
Enumeration for different types of distance transforms.
Definition morphology.hpp:30
@ DT_EXACT
Exact distance transform.
Definition morphology.hpp:31
@ DT_APPROX
Approximate distance transform.
Definition morphology.hpp:32
@ DT_JFA
Approximate (JFA) distance transform.
Definition morphology.hpp:34
@ DT_MANHATTAN
Manhattan distance transform.
Definition morphology.hpp:33
Array closing_by_reconstruction(const Array &array, int ir, float k_smooth_max=0.f)
Apply closing by reconstruction to the input array.
Definition morphology.cpp:66
Array opening(const Array &array, int ir)
Apply an opening algorithm to the input array using a square structure.
Definition morphology.cpp:213
Array signed_curvature_from_distance(const Array &array, int prefilter_ir=0)
Computes the signed curvature of the distance transform.
Definition signed_curvature_from_distance.cpp:13
Array dilation(const Array &array, int ir)
Apply a dilation algorithm to the input array using a square structure.
Definition morphology.cpp:85
Array signed_distance_transform(const Array &array, int prefilter_ir=0)
Computes a signed distance transform using curvature sign.
Definition signed_curvature_from_distance.cpp:19
Array area_remove(const Array &array, float threshold_size, float background_value=0.f, float fill_value=0.f)
Remove connected components smaller than a given size threshold.
Definition morphology.cpp:24
Array morphological_operators(const Array &array, int ir, MorphologyOperation operation)
Apply a morphological operation to the input array using a square kernel.
Definition wrapper.cpp:10
Array distance_transform_manhattan(const Array &array, bool return_squared_distance=false)
Calculates the Manhattan distance transform of an array.
Definition distance_transform_approx.cpp:55
void flood_fill(Array &array, int i, int j, float fill_value=1.f, float background_value=0.f)
Apply a flood fill algorithm to the input array.
Definition morphology.cpp:150
Array morphological_laplacian(const Array &array, int ir)
Apply a morphological Laplacian operator to the input array using a square structure.
Definition morphology.cpp:202
Array border(const Array &array, int ir)
Apply a border algorithm to the input array using a square structure.
Definition morphology.cpp:56