dlib C++ Library - assign_image_abstract.h

    // Copyright (C) 2007  Davis E. King (davisking@users.sourceforge.net)
    // License: Boost Software License   See LICENSE.txt for the full license.
    #undef DLIB_ASSIGN_IMAGe_ABSTRACT
    #ifdef DLIB_ASSIGN_IMAGe_ABSTRACT

    #include "../pixel.h"

    namespace dlib
    {

    // ----------------------------------------------------------------------------------------

        template <
            typename dest_image_type,
            typename src_image_type
            >
        void assign_image (
            dest_image_type& dest_img,
            const src_image_type& src_img
        );
        /*!
            requires
                - src_image_type == is an implementation of array2d/array2d_kernel_abstract.h
                - dest_image_type == is an implementation of array2d/array2d_kernel_abstract.h
                - pixel_traits<typename src_image_type::type> is defined
                - pixel_traits<typename dest_image_type::type> is defined
            ensures
                - #dest_img.nc() == src_img.nc()
                - #dest_img.nr() == src_img.nr()
                - for all valid r and c:
                    - performs assign_pixel(#dest_img[r][c],src_img[r][c])
                      (i.e. copies the src image to dest image)
        !*/

    // ----------------------------------------------------------------------------------------

        template <
            typename dest_image_type,
            typename src_pixel_type
            >
        void assign_all_pixels (
            dest_image_type& dest_img,
            const src_pixel_type& src_pixel
        );
        /*!
            requires
                - dest_image_type == is an implementation of array2d/array2d_kernel_abstract.h
                - pixel_traits<typename dest_image_type::type> is defined
                - pixel_traits<src_pixel_type> is defined
            ensures
                - #dest_img.nc() == dest_img.nc()
                - #dest_img.nr() == dest_img.nr()
                  (i.e. the size of dest_img isn't changed by this function)
                - for all valid r and c:
                    - performs assign_pixel(#dest_img[r][c],src_pixel)
                      (i.e. assigns the src pixel to every pixel in the dest image)
        !*/

    // ----------------------------------------------------------------------------------------

        template <
            typename image_type
            >
        void assign_border_pixels (
            image_type& img,
            long x_border_size,
            long y_border_size,
            const typename image_type::type& p
        );
        /*!
            requires
                - image_type == is an implementation of array2d/array2d_kernel_abstract.h
                - x_border_size >= 0
                - y_border_size >= 0
            ensures
                - #img.nc() == img.nc()
                - #img.nr() == img.nr()
                  (i.e. the size of img isn't changed by this function)
                - for all valid r such that r+y_border_size or r-y_border_size gives an invalid row
                    - for all valid c such that c+x_border_size or c-x_border_size gives an invalid column
                        - performs assign_pixel(#img[r][c],p)
                          (i.e. assigns the given pixel to every pixel in the border of img)
        !*/

    // ----------------------------------------------------------------------------------------

        template <
            typename image_type
            >
        void assign_border_pixels (
            image_type& img,
            long x_border_size,
            long y_border_size
        );
        /*!
            requires
                - image_type == is an implementation of array2d/array2d_kernel_abstract.h
                - x_border_size >= 0
                - y_border_size >= 0
            ensures
                - #img.nc() == img.nc()
                - #img.nr() == img.nr()
                  (i.e. the size of img isn't changed by this function)
                - let p be a pixel such that get_pixel_intensity(p) == 0
                - performs assign_border_pixels(img, x_border_size, y_border_size, p)
                  (i.e. zeros the border of the given image)
        !*/

    // ----------------------------------------------------------------------------------------

    }

    #endif // DLIB_ASSIGN_IMAGe_ABSTRACT