Classes | |
| struct | i3d::minimum< T > |
| struct | i3d::maximum< T > |
| class | i3d::less_than< T > |
| class | i3d::greater_than< T > |
Functions | |
| template<class T> | |
| void | i3d::Dilation (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::LocalDilation (const Image3d< T > &in, Image3d< T > &out, const Image3d< BINARY > &mask, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Erosion (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::LocalErosion (const Image3d< T > &in, Image3d< T > &out, const Image3d< BINARY > &mask, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Closing (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::LocalClosing (const Image3d< T > &in, Image3d< T > &out, const Image3d< BINARY > &mask, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Closing (Image3d< T > &in, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Opening (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neigh) |
| template<class T> | |
| void | i3d::LocalOpening (const Image3d< T > &in, Image3d< T > &out, const Image3d< BINARY > &mask, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Opening (Image3d< T > &in, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::WhiteTopHat (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::BlackTopHat (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::TopHat (Image3d< T > &in, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::HitOrMiss (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &b, const Neighbourhood &w) |
| template<class T> | |
| void | i3d::Thinning (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &b, const Neighbourhood &w) |
| template<class T> | |
| void | i3d::Thicking (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &b, const Neighbourhood &w) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::DilationO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::ErosionO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::ClosingO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::OpeningO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::WhiteTopHatO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::BlackTopHatO (const Image3d< T > &in, Image3d< T > &out, const int radius_size) |
| template<class T> | |
| I3D_DLLEXPORT void | i3d::MaximaDynamic (const Image3d< T > &in, Image3d< BINARY > &out, const T dynamic) |
| I3D_DLLEXPORT void | i3d::Dilation (const Image3d< i3d::BINARY > &in, Image3d< i3d::BINARY > &out, const float radius) |
| I3D_DLLEXPORT void | i3d::Erosion (const Image3d< i3d::BINARY > &in, Image3d< i3d::BINARY > &out, const float radius) |
| I3D_DLLEXPORT void | i3d::Closing (const Image3d< i3d::BINARY > &in, Image3d< i3d::BINARY > &out, const float radius) |
| I3D_DLLEXPORT void | i3d::Opening (const Image3d< i3d::BINARY > &in, Image3d< i3d::BINARY > &out, const float radius) |
| template<class T> | |
| void | i3d::Geodesic_dilation (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Geodesic_erosion (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::h_Max (const Image3d< T > &in, T h, Image3d< T > &out) |
| template<class T> | |
| void | i3d::h_Convex (const Image3d< T > &in, T h, Image3d< T > &out) |
| template<class T> | |
| void | i3d::r_Max_bysweeping (const Image3d< T > &in, Image3d< T > &out) |
| template<class T> | |
| void | i3d::r_Max (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib, const T minVal=(T) 0) |
| template<typename T> | |
| void | i3d::r_Min (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::e_Max (const Image3d< T > &in, T h, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::impose_minima (Image3d< T > &in_out, const Image3d< BINARY > &mask_bin) |
| template<class T> | |
| void | i3d::Fillhole (const Image3d< T > &in, Image3d< T > &out) |
| template<class T, class F, class G> | |
| void | i3d::Reconstruction_by_DilEro (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, const Neighbourhood &neib, F func_f, G func_g) |
| template<class T, class F, class G> | |
| void | i3d::Reconstruction_by_DilEro (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, F func_f, G func_g) |
| template<class T> | |
| void | i3d::Reconstruction_by_dilation (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Reconstruction_by_dilation (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out) |
| template<class T> | |
| void | i3d::Reconstruction_by_erosion (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out, const Neighbourhood &neib) |
| template<class T> | |
| void | i3d::Reconstruction_by_erosion (const Image3d< T > &marker, const Image3d< T > &mask, Image3d< T > &out) |
| template<class T, class F> | |
| void | i3d::DilEro (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib, F function) |
| template<class T, class F> | |
| I3D_DLLEXPORT void | i3d::LocalDilEro (const Image3d< T > &in, Image3d< T > &out, Image3d< BINARY > &, const Neighbourhood &neib, F function) |
| template<class T1, class T2, class Pred> | |
| void | i3d::DiscreteDistance (const Image3d< T1 > &in, Image3d< T2 > &out, const Neighbourhood &neib, Pred p) |
| void | i3d::Split (const Neighbourhood &n, Neighbourhood &n_forw, Neighbourhood &n_back) |
| template<class T> | |
| bool | i3d::Correspond (std::vector< T * > &b, std::vector< T * > &w) |
| template<class T> | |
| void | i3d::WatershedToboggan (const Image3d< T > &in, Image3d< int > &out, int connectivity, bool drawLines=false) |
| template<class T> | |
| void | i3d::WatershedToboggan2D (const Image3d< T > &in, Image3d< int > &out, int connectivity) |
| template<class T> | |
| void | i3d::WatershedLin (const Image3d< T > &in, Image3d< int > &out, int connectivity, bool drawLines=false) |
| template<class T> | |
| void | i3d::WatershedLin2D (const Image3d< T > &in, Image3d< int > &out, int connectivity) |
| template<typename T> | |
| I3D_DLLEXPORT void | i3d::WatershedMeyer (const Image3d< T > &input, const Image3d< size_t > &marker, Image3d< size_t > &output, const Neighbourhood &neighbourhood) |
| template<typename T> | |
| I3D_DLLEXPORT void | i3d::WatershedMeyer (const Image3d< T > &input, Image3d< size_t > &output, const Neighbourhood &neighbourhood) |
| template<class T> | |
| void | i3d::WatershedCGS (const Image3d< T > &in, Image3d< T > &out, int connectivity) |
| template<class T> | |
| void | i3d::Watershed (const Image3d< T > &in, Image3d< T > &out, const Neighbourhood &neib) |
| I3D_DLLEXPORT void i3d::Dilation | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphologial Dilation.
| I3D_DLLEXPORT void i3d::LocalDilation | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Image3d< BINARY > & | mask, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::Erosion | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological Erosion.
| I3D_DLLEXPORT void i3d::LocalErosion | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Image3d< BINARY > & | mask, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::Closing | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological Closing.
| I3D_DLLEXPORT void i3d::LocalClosing | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Image3d< BINARY > & | mask, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::Closing | ( | Image3d< T > & | in, | |
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological Closing.
| I3D_DLLEXPORT void i3d::Opening | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neigh | |||
| ) | [inline] |
Morphological Opening.
| I3D_DLLEXPORT void i3d::LocalOpening | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Image3d< BINARY > & | mask, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::Opening | ( | Image3d< T > & | in, | |
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological Opening.
| I3D_DLLEXPORT void i3d::WhiteTopHat | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological WhiteTopHat.
| I3D_DLLEXPORT void i3d::BlackTopHat | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological BlackTopHat.
| I3D_DLLEXPORT void i3d::TopHat | ( | Image3d< T > & | in, | |
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological TopHat.
| I3D_DLLEXPORT void i3d::HitOrMiss | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | b, | |||
| const Neighbourhood & | w | |||
| ) | [inline] |
Morphological HitOrMiss.
| I3D_DLLEXPORT void i3d::Thinning | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | b, | |||
| const Neighbourhood & | w | |||
| ) | [inline] |
Morphological thinning.
| I3D_DLLEXPORT void i3d::Thicking | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | b, | |||
| const Neighbourhood & | w | |||
| ) | [inline] |
Morphological thicking.
| I3D_DLLEXPORT void i3d::DilationO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
Effective morphological operations with an approximation of a disk.
radius is in pixels Disk is approximated by octagon (polyhedron), uses decomposition of SE (alternating nb6 and nb 27)
by Pavel Matula, 2009
| I3D_DLLEXPORT void i3d::ErosionO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::ClosingO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::OpeningO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::WhiteTopHatO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::BlackTopHatO | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const int | radius_size | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::MaximaDynamic | ( | const Image3d< T > & | in, | |
| Image3d< BINARY > & | out, | |||
| const T | dynamic | |||
| ) | [inline] |
Computes maximas of the given dymanic.
by Pavel Matula, 2009
| I3D_DLLEXPORT void i3d::Dilation | ( | const Image3d< i3d::BINARY > & | in, | |
| Image3d< i3d::BINARY > & | out, | |||
| const float | radius | |||
| ) |
Effective morphological operations with disk structuring elements.
radius is in microns
| I3D_DLLEXPORT void i3d::Erosion | ( | const Image3d< i3d::BINARY > & | in, | |
| Image3d< i3d::BINARY > & | out, | |||
| const float | radius | |||
| ) |
| I3D_DLLEXPORT void i3d::Closing | ( | const Image3d< i3d::BINARY > & | in, | |
| Image3d< i3d::BINARY > & | out, | |||
| const float | radius | |||
| ) |
| I3D_DLLEXPORT void i3d::Opening | ( | const Image3d< i3d::BINARY > & | in, | |
| Image3d< i3d::BINARY > & | out, | |||
| const float | radius | |||
| ) |
| I3D_DLLEXPORT void i3d::Geodesic_dilation | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Mask image must be larger than or equal to the marker image.
| I3D_DLLEXPORT void i3d::Geodesic_erosion | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Marker image must be larger than or equal to the mask image.
| I3D_DLLEXPORT void i3d::h_Max | ( | const Image3d< T > & | in, | |
| T | h, | |||
| Image3d< T > & | out | |||
| ) | [inline] |
Computes h-Maxima, suppress all maxima whose depth is smaller than h.
| I3D_DLLEXPORT void i3d::h_Convex | ( | const Image3d< T > & | in, | |
| T | h, | |||
| Image3d< T > & | out | |||
| ) | [inline] |
Compute h-Convex transformation.
| I3D_DLLEXPORT void i3d::r_Max_bysweeping | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out | |||
| ) | [inline] |
TODO Comment.
| I3D_DLLEXPORT void i3d::r_Max | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib, | |||
| const T | minVal = (T) 0 | |||
| ) | [inline] |
Computes regional maxima - they will be marked with std::numeric_limits<T>::max(), nonmaxima with 0.
| I3D_DLLEXPORT void i3d::r_Min | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Computes regional minima - they will be marked with std::numeric_limits<T>::max(), nonminima with 0.
| I3D_DLLEXPORT void i3d::e_Max | ( | const Image3d< T > & | in, | |
| T | h, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Computes h-extended maxima, EMAX_h(f) = RMAX(HMAX_h(f)).
| I3D_DLLEXPORT void i3d::impose_minima | ( | Image3d< T > & | in_out, | |
| const Image3d< BINARY > & | mask_bin | |||
| ) | [inline] |
minima imposition where mask_bin == 1
| I3D_DLLEXPORT void i3d::Fillhole | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out | |||
| ) | [inline] |
Holes filling algorithm computed using the morphological reconstruction by erosion.
| I3D_DLLEXPORT void i3d::Reconstruction_by_DilEro | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib, | |||
| F | func_f, | |||
| G | func_g | |||
| ) | [inline] |
This implementation does not work! Please use the versions without Neighbourhood instead.
| I3D_DLLEXPORT void i3d::Reconstruction_by_DilEro | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| F | func_f, | |||
| G | func_g | |||
| ) | [inline] |
General geodesic reconstruction function.
| I3D_DLLEXPORT void i3d::Reconstruction_by_dilation | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
This implementation does not work! Please use the versions without Neighbourhood instead.
Mask image must be larger than or equal to the marker image.
| I3D_DLLEXPORT void i3d::Reconstruction_by_dilation | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out | |||
| ) | [inline] |
Mask image must be larger than or equal to the marker image.
| I3D_DLLEXPORT void i3d::Reconstruction_by_erosion | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
This implementation does not work! Please use the versions without Neighbourhood instead.
Marker image must be larger than or equal to the mask image.
| I3D_DLLEXPORT void i3d::Reconstruction_by_erosion | ( | const Image3d< T > & | marker, | |
| const Image3d< T > & | mask, | |||
| Image3d< T > & | out | |||
| ) | [inline] |
Marker image must be larger than or equal to the mask image.
| I3D_DLLEXPORT void i3d::DilEro | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib, | |||
| F | function | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::LocalDilEro | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| Image3d< BINARY > & | , | |||
| const Neighbourhood & | neib, | |||
| F | function | |||
| ) | [inline] |
| I3D_DLLEXPORT void i3d::DiscreteDistance | ( | const Image3d< T1 > & | in, | |
| Image3d< T2 > & | out, | |||
| const Neighbourhood & | neib, | |||
| Pred | p | |||
| ) | [inline] |
DiscreteDistance function needs 4 parameters:.
| in | input image | |
| out | output (filtered) image | |
| neib | neighbourhood applied to each voxel | |
| p | condition, which must be hold in each voxel so that this voxel could be plugged into the process of computation. |
| I3D_DLLEXPORT void i3d::Split | ( | const Neighbourhood & | n, | |
| Neighbourhood & | n_forw, | |||
| Neighbourhood & | n_back | |||
| ) |
| I3D_DLLEXPORT bool i3d::Correspond | ( | std::vector< T * > & | b, | |
| std::vector< T * > & | w | |||
| ) | [inline] |
returns true if color of all points in neighbourhoods corresponds to image.
| I3D_DLLEXPORT void i3d::WatershedToboggan | ( | const Image3d< T > & | in, | |
| Image3d< int > & | out, | |||
| int | connectivity, | |||
| bool | drawLines = false | |||
| ) | [inline] |
Morphological Watershed.
It uses Toboggan based approach implemented primarily by Lin et.al and published in "Comparison between immersion-based and toboggan-based watershed image segmentation" Yung-Chieh Lin; Yu-Pao Tsai; Yi-Ping Hung; Zen-Chung Shih, IEEE Transactions on Image Processing, 15, 3, March 2006
and altered for 3D by Martin Maska and Pavel Matula
This algorithm sometimes produces thick watershed lines. The result of the algorithm itself is very close to the Vincent-Soille algorithm.
| in | the input image | |
| out | the output labelled image, -1 is marking the watershed line, regions are marked beginning at 1 (0 is not used for anything) | |
| connectivity | is 4, 8, 6, 18, 26 | |
| drawLines | whether to draw watershed lines everywhere or just in the ambiguous cases |
| I3D_DLLEXPORT void i3d::WatershedToboggan2D | ( | const Image3d< T > & | in, | |
| Image3d< int > & | out, | |||
| int | connectivity | |||
| ) | [inline] |
Morphological Watershed.
It uses Toboggan based approach implemented by Lin et.al and published in "Comparison between immersion-based and toboggan-based watershed image segmentation" Yung-Chieh Lin; Yu-Pao Tsai; Yi-Ping Hung; Zen-Chung Shih, IEEE Transactions on Image Processing, 15, 3, March 2006
It can be called for 2D images (NumSlices() is equal to 1). InternalException is raised otherwise.
This algorithm sometimes produces thick watershed lines. The result of the algorithm itself is very close to the Vincent-Soille algorithm.
| in | the input image | |
| out | the output labelled image, -1 is marking the watershed line, regions are marked beginning at 1 (0 is not used for anything) | |
| connectivity | is 4 or 8 |
| I3D_DLLEXPORT void i3d::WatershedLin | ( | const Image3d< T > & | in, | |
| Image3d< int > & | out, | |||
| int | connectivity, | |||
| bool | drawLines = false | |||
| ) | [inline] |
Morphological Watershed.
It uses Watershed function implemented primarily by Lin et.al and published in "Comparison between immersion-based and toboggan-based watershed image segmentation" Yung-Chieh Lin; Yu-Pao Tsai; Yi-Ping Hung; Zen-Chung Shih, IEEE Transactions on Image Processing, 15, 3, March 2006
and altered for 3D by Martin Maska.
This algorithm sometimes produces thick watershed lines. The result of the algorithm itself is very close to the Vincent-Soille algorithm. Use WatershedToboggan to get the same results but in shorter time.
| in | the input image | |
| out | the output labelled image, -1 is marking the watershed line, regions are marked beginning at 1 (0 is not used for anything) | |
| connectivity | is 4, 8, 6, 18, 26 | |
| drawLines | whether to draw watershed lines everywhere or just in the ambiguous cases |
| I3D_DLLEXPORT void i3d::WatershedLin2D | ( | const Image3d< T > & | in, | |
| Image3d< int > & | out, | |||
| int | connectivity | |||
| ) | [inline] |
Morphological Watershed.
It uses Watershed function implemented by Lin et.al and published in "Comparison between immersion-based and toboggan-based watershed image segmentation" Yung-Chieh Lin; Yu-Pao Tsai; Yi-Ping Hung; Zen-Chung Shih, IEEE Transactions on Image Processing, 15, 3, March 2006
It can be called for 2D images (NumSlices() is equal to 1). InternalException is raised otherwise.
Watershed lines are drawn only in the ambiguous cases. The result of the algorithm itself is very close to the Vincent-Soille algorithm. Use WatershedToboggan2D to get the same results but in shorter time.
| in | the input image | |
| out | the output labelled image, -1 is marking the watershed line, regions are marked beginning at 1 (0 is not used for anything) | |
| connectivity | is 4 or 8 |
| I3D_DLLEXPORT void i3d::WatershedMeyer | ( | const Image3d< T > & | input, | |
| const Image3d< size_t > & | marker, | |||
| Image3d< size_t > & | output, | |||
| const Neighbourhood & | neighbourhood | |||
| ) | [inline] |
Morphological watershed algorithm according to Meyer.
This algorithm produces thin watershed lines.
| input | the input image | |
| marker | the marker image used for the start of the region growing (non-zero values should be used for the markers, zero otherwise) | |
| output | the output labelled image, 0 is marking the watershed line | |
| neighbourhood | the neighbourhood used for the computation |
| I3D_DLLEXPORT void i3d::WatershedMeyer | ( | const Image3d< T > & | input, | |
| Image3d< size_t > & | output, | |||
| const Neighbourhood & | neighbourhood | |||
| ) | [inline] |
Morphological watershed algorithm according to Meyer.
This algorithm produces thin watershed lines. This version uses all the regional minima as markers.
| input | the input image | |
| output | the output labelled image, 0 is marking the watershed line | |
| neighbourhood | the neighbourhood used for the computation |
| I3D_DLLEXPORT void i3d::WatershedCGS | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| int | connectivity | |||
| ) | [inline] |
Watershed constours geodesic saliency.
Morphological watershed that uses the concept of dynamics of contours presented by Najman and Schmitt in Laurent Najman, Michel Schmitt, "Geodesic Saliency of Watershed Contours and Hierarchical Segmentation," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 18, no. 12, pp. 1163-1173, December, 1996.
| in | the input image | |
| out | the output labelled image | |
| connectivity | is 4, 8, 6, 18, 26 |
| I3D_DLLEXPORT void i3d::Watershed | ( | const Image3d< T > & | in, | |
| Image3d< T > & | out, | |||
| const Neighbourhood & | neib | |||
| ) | [inline] |
Morphological Watershed.
This implementation has been outperformed by other implementations available, stop using it!
1.5.4