HighMap library (C++)
Loading...
Searching...
No Matches
morphology.hpp
Go to the documentation of this file.
1/* Copyright (c) 2023 Otto Link. Distributed under the terms of the GNU General
2 Public License. The full license is in the file LICENSE, distributed with
3 this software. */
4
18#pragma once
19
20#include "highmap/array.hpp"
21
22namespace hmap
23{
24
34
48Array border(const Array &array, int ir);
49
63Array closing(const Array &array, int ir);
64
79Array dilation(const Array &array, int ir);
80
101Array distance_transform(const Array &array,
102 bool return_squared_distance = false);
103
122Array distance_transform_approx(const Array &array,
123 bool return_squared_distance = false);
124
142Array distance_transform_manhattan(const Array &array,
143 bool return_squared_distance = false);
144
159Array erosion(const Array &array, int ir);
160
176void flood_fill(Array &array,
177 int i,
178 int j,
179 float fill_value = 1.f,
180 float background_value = 0.f);
181
196Array morphological_black_hat(const Array &array, int ir);
197
212Array morphological_gradient(const Array &array, int ir);
213
228Array morphological_top_hat(const Array &array, int ir);
229
244Array opening(const Array &array, int ir);
245
279Array relative_distance_from_skeleton(const Array &array,
280 int ir_search,
281 bool zero_at_borders = true,
282 int ir_erosion = 1);
283
307Array skeleton(const Array &array, bool zero_at_borders = true);
308
309} // namespace hmap
310
311namespace hmap::gpu
312{
313
315Array border(const Array &array, int ir);
316
318Array closing(const Array &array, int ir);
319
321Array dilation(const Array &array, int ir);
322
324Array erosion(const Array &array, int ir);
325
327Array morphological_black_hat(const Array &array, int ir);
328
330Array morphological_gradient(const Array &array, int ir);
331
333Array morphological_top_hat(const Array &array, int ir);
334
336Array opening(const Array &array, int ir);
337
339Array relative_distance_from_skeleton(const Array &array,
340 int ir_search,
341 bool zero_at_borders = true,
342 int ir_erosion = 1);
343
345Array skeleton(const Array &array, bool zero_at_borders = true);
346
347} // namespace hmap::gpu
Declaration of the Array class for 2D floating-point arrays with various mathematical operations and ...
Definition blending.hpp:151
Array border(const Array &array, int ir)
See hmap::border.
Definition morphology_gpu.cpp:12
Array skeleton(const Array &array, bool zero_at_borders=true)
See hmap::skeleton.
Definition morphology_gpu.cpp:79
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:52
Array morphological_top_hat(const Array &array, int ir)
See hmap::morphological_top_hat.
Definition morphology_gpu.cpp:42
Array morphological_black_hat(const Array &array, int ir)
See hmap::morphological_black_hat.
Definition morphology_gpu.cpp:32
Array closing(const Array &array, int ir)
See hmap::closing.
Definition morphology_gpu.cpp:17
Array opening(const Array &array, int ir)
See hmap::opening.
Definition morphology_gpu.cpp:47
Array dilation(const Array &array, int ir)
See hmap::dilation.
Definition morphology_gpu.cpp:22
Array erosion(const Array &array, int ir)
See hmap::erosion.
Definition morphology_gpu.cpp:27
Array morphological_gradient(const Array &array, int ir)
See hmap::morphological_gradient.
Definition morphology_gpu.cpp:37
Definition algebra.hpp:28
Array morphological_gradient(const Array &array, int ir)
Apply a morphological gradient algorithm to the input array using a square structure.
Definition morphology.cpp:86
Array skeleton(const Array &array, bool zero_at_borders=true)
Computes the skeleton of a binary image using the Zhang-Suen skeletonization algorithm.
Definition morphology.cpp:186
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:81
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:91
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:12
Array distance_transform(const Array &array, bool return_squared_distance=false)
Return the Euclidean distance transform.
Definition distance_transform.cpp:23
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:135
Array closing(const Array &array, int ir)
Apply a closing algorithm to the input array using a square structure.
Definition morphology.cpp:19
Array erosion(const Array &array, int ir)
Apply an erosion algorithm to the input array using a square structure.
Definition morphology.cpp:29
DistanceTransformType
Enumeration for different types of distance transforms.
Definition morphology.hpp:29
@ DT_EXACT
Exact distance transform.
Definition morphology.hpp:30
@ DT_APPROX
Approximate distance transform.
Definition morphology.hpp:31
@ DT_MANHATTAN
Manhattan distance transform.
Definition morphology.hpp:32
Array opening(const Array &array, int ir)
Apply an opening algorithm to the input array using a square structure.
Definition morphology.cpp:96
Array dilation(const Array &array, int ir)
Apply a dilation algorithm to the input array using a square structure.
Definition morphology.cpp:24
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:54
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:34
Array border(const Array &array, int ir)
Apply a border algorithm to the input array using a square structure.
Definition morphology.cpp:14