Functions | |
template<class I, class I2, class N> oln::mute< I >::ret | minima_imposition (const abstract::non_vectorial_image< I > &input, const abstract::non_vectorial_image< I2 > &minima_map, const abstract::neighborhood< N > &Ng) |
Perform a minima imposition. | |
template<class I, class N> mute< I, ntg::bin >::ret | regional_minima (const abstract::non_vectorial_image< I > &input, const abstract::neighborhood< N > &Ng) |
Extract regional minima. | |
template<class I1, class I2, class N> oln::mute< I1 >::ret | geodesic_reconstruction_dilation (const abstract::non_vectorial_image< I1 > &marker, const abstract::non_vectorial_image< I2 > &mask, const abstract::neighborhood< N > &Ng) |
Perform a geodesic reconstruction dilation. | |
template<class I1, class I2, class N> oln::mute< I1 >::ret | geodesic_reconstruction_erosion (const abstract::non_vectorial_image< I1 > &marker, const abstract::non_vectorial_image< I2 > &mask, const abstract::neighborhood< N > &Ng) |
Perform a geodesic reconstruction erosion. |
|
Perform a geodesic reconstruction dilation. Compute the reconstruction by dilation of marker with respect to the mask image using se as structuring element. Soille p.160. The algorithm used is the one defined as sequential in Vincent(1993), Morphological grayscale reconstruction in image analysis: applications and efficient algorithms, itip, 2(2), 176--201.
![]() ![]() Definition at line 168 of file reconstruction.hh. References oln::abstract::image< Exact >::clone(), oln::morpho::get_minus_se_p(), oln::morpho::get_plus_se_p(), and oln::abstract::image< Exact >::size().
00171 { 00172 mlc::eq<I1::dim, I2::dim>::ensure(); 00173 mlc::eq<I1::dim, N::dim>::ensure(); 00174 precondition(marker.size() == mask.size()); 00175 precondition(level::is_greater_or_equal(mask, marker)); 00176 00177 // Conversion of neighborhood into a SE. 00178 typedef typename abstract::neighborhood<N>::win_type E; 00179 E se_plus = get_plus_se_p(convert::ng_to_cse(Ng)); 00180 E se_minus = get_minus_se_p(convert::ng_to_cse(Ng)); 00181 00182 oln_concrete_type(I1) output = marker.clone(); 00183 bool non_stability = true; 00184 typename I1::fwd_iter_type fwd_p(output); 00185 typename I1::bkd_iter_type bkd_p(output); 00186 while (non_stability) 00187 { 00188 oln_concrete_type(I1) work = output.clone(); 00189 work.border_adapt_copy(Ng.delta()); 00190 for_all (fwd_p) 00191 work[fwd_p] = ntg::min(morpho::max(work, fwd_p, se_plus), mask[fwd_p]); 00192 for_all (bkd_p) 00193 work[bkd_p] = ntg::min(morpho::max(work, bkd_p, se_minus), mask[bkd_p]); 00194 non_stability = !(level::is_equal(work, output)); 00195 output = work; 00196 } 00197 return output; 00198 } |
|
Perform a geodesic reconstruction erosion. Compute the reconstruction by erosion of marker with respect to the mask image using se as structuring element. Soille p.160. The algorithm used is the one defined as sequential in Vincent(1993), Morphological grayscale reconstruction in image analysis: applications and efficient algorithms, itip, 2(2), 176--201.
![]() ![]() Definition at line 462 of file reconstruction.hh. References oln::morpho::get_minus_se_p(), oln::morpho::get_plus_se_p(), and oln::abstract::image< Exact >::size().
00465 { 00466 mlc::eq<I1::dim, I2::dim>::ensure(); 00467 mlc::eq<I1::dim, N::dim>::ensure(); 00468 precondition(marker.size() == mask.size()); 00469 precondition(level::is_greater_or_equal(marker, mask)); 00470 00471 typedef typename abstract::neighborhood<N>::win_type E; 00472 E se_plus = get_plus_se_p(convert::ng_to_cse(Ng)); 00473 E se_minus = get_minus_se_p(convert::ng_to_cse(Ng)); 00474 oln_concrete_type(I1) output = marker.clone(); 00475 00476 bool non_stability = true; 00477 typename I1::fwd_iter_type fwd_p(output); 00478 typename I1::bkd_iter_type bkd_p(output); 00479 while (non_stability) 00480 { 00481 oln_concrete_type(I1) work = output.clone(); 00482 work.border_adapt_copy(Ng.delta()); 00483 for_all (fwd_p) 00484 work[fwd_p] = ntg::max(morpho::min(work, fwd_p, se_plus), mask[fwd_p]); 00485 for_all (bkd_p) 00486 work[bkd_p] = ntg::max(morpho::min(work, bkd_p, se_minus), mask[bkd_p]); 00487 non_stability = !(level::is_equal(work, output)); 00488 output = work; 00489 } 00490 return output; 00491 } |
|
Perform a minima imposition. Impose minima defined by minima_map on input using Ng as neighborhood. minima_map must be a bin image (true for a minimum, false for a non minimum). Soille p.172.
![]() ![]() ![]() Definition at line 356 of file extrema.hh. |
|
Extract regional minima.
![]() ![]() Definition at line 408 of file extrema.hh. |