1 #ifndef vil_greyscale_opening_h_
2 #define vil_greyscale_opening_h_
3 //:
4 // \file
5 // \brief Perform greyscale opening on images
6 // \author Tim Cootes
7 
8 #include <vil/algo/vil_greyscale_dilate.h>
9 #include <vil/algo/vil_greyscale_erode.h>
10 
11 //: Applies morphological opening operation with given structuring element
12 //  Applies erosion followed by dilation
13 // \relatesalso vil_image_view
14 // \relatesalso vil_structuring_element
15 template <class T>
vil_greyscale_opening(const vil_image_view<T> & src_image,vil_image_view<T> & dest_image,const vil_structuring_element & element)16 inline void vil_greyscale_opening(const vil_image_view<T>& src_image,
17                                   vil_image_view<T>& dest_image,
18                                   const vil_structuring_element& element)
19 {
20   vil_image_view<T> eroded_im;
21   vil_greyscale_erode(src_image,eroded_im,element);
22   vil_greyscale_dilate(eroded_im,dest_image,element);
23 }
24 
25 #endif // vil_greyscale_opening_h_
26