// Copyright (C) 2010 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #undef DLIB_IMAGE_PYRaMID_ABSTRACT_H__ #ifdef DLIB_IMAGE_PYRaMID_ABSTRACT_H__ #include "../pixel.h" #include "../array2d.h" namespace dlib { class pyramid_down : noncopyable { /*! WHAT THIS OBJECT REPRESENTS This is a simple functor to help create image pyramids. !*/ public: template < typename in_image_type, typename out_image_type > void operator() ( const in_image_type& original, out_image_type& down ); /*! requires - original.nr() > 10 - original.nc() > 10 - is_same_object(original, down) == false - in_image_type == is an implementation of array2d/array2d_kernel_abstract.h - out_image_type == is an implementation of array2d/array2d_kernel_abstract.h - pixel_traits<typename in_image_type::type>::has_alpha == false - pixel_traits<typename out_image_type::type>::has_alpha == false ensures - #down will contain an image that is roughly half the size of the original image. To be specific, this function performs the following steps: - 1. Applies a 5x5 Gaussian filter to the original image to smooth it a little. - 2. Every other row and column is discarded to create an image half the size of the original. This smaller image is stored in #down. !*/ }; } #endif // DLIB_IMAGE_PYRaMID_ABSTRACT_H__