// Copyright (C) 2006 Davis E. King (davis@dlib.net)
// License: Boost Software License See LICENSE.txt for the full license.
#undef DLIB_EQUALIZE_HISTOGRAm_ABSTRACT_
#ifdef DLIB_EQUALIZE_HISTOGRAm_ABSTRACT_
#include "../pixel.h"
#include "../matrix.h"
namespace dlib
{
// ---------------------------------------------------------------------------------------
template <
typename in_image_type,
typename out_image_type
>
void equalize_histogram (
const in_image_type& in_img,
out_image_type& out_img
);
/*!
requires
- 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
- pixel_traits<typename in_image_type::type>::is_unsigned == true
- pixel_traits<typename out_image_type::type>::is_unsigned == true
ensures
- #out_img == the histogram equalized version of in_img
- #out_img.nc() == in_img.nc()
- #out_img.nr() == in_img.nr()
!*/
// ---------------------------------------------------------------------------------------
template <
typename in_image_type,
long R,
long C,
typename MM
>
void get_histogram (
const in_image_type& in_img,
matrix<unsigned long,R,C,MM>& hist
);
/*!
requires
- in_image_type == is an implementation of array2d/array2d_kernel_abstract.h
- pixel_traits<typename in_image_type::type>::is_unsigned == true
- hist must be capable of representing a column vector of length
pixel_traits<typename in_image_type>::max(). I.e. if R and C are nonzero
then they must be values that don't conflict with the previous sentence.
ensures
- #hist.size() == pixel_traits<typename in_image_type>::max()
- #hist.nc() == 1 || #hist.nr() == 1 (i.e. hist is either a row or column vector)
- #hist == the histogram for in_img. I.e. it is the case that for all
valid i:
- hist(i) == the number of times a pixel with intensity i appears
in in_img
!*/
// ---------------------------------------------------------------------------------------
}
#endif // DLIB_EQUALIZE_HISTOGRAm_ABSTRACT_