// Copyright (C) 2014 Davis E. King (davis@dlib.net) // License: Boost Software License See LICENSE.txt for the full license. #ifndef DLIB_MATRIX_GENERIC_iMAGE_Hh_ #define DLIB_MATRIX_GENERIC_iMAGE_Hh_ #include "matrix.h" #include "../image_processing/generic_image.h" namespace dlib { template < typename T, long NR, long NC, typename MM > struct image_traits<matrix<T,NR,NC,MM> > { typedef T pixel_type; }; template < typename T, long NR, long NC, typename MM > struct image_traits<const matrix<T,NR,NC,MM> > { typedef T pixel_type; }; template < typename T, long NR, long NC, typename MM > inline long num_rows( const matrix<T,NR,NC,MM>& img) { return img.nr(); } template < typename T, long NR, long NC, typename MM > inline long num_columns( const matrix<T,NR,NC,MM>& img) { return img.nc(); } template < typename T, long NR, long NC, typename MM > inline void set_image_size( matrix<T,NR,NC,MM>& img, long rows, long cols ) { img.set_size(rows,cols); } template < typename T, long NR, long NC, typename MM > inline void* image_data( matrix<T,NR,NC,MM>& img ) { if (img.size() != 0) return &img(0,0); else return 0; } template < typename T, long NR, long NC, typename MM > inline const void* image_data( const matrix<T,NR,NC,MM>& img ) { if (img.size() != 0) return &img(0,0); else return 0; } template < typename T, long NR, long NC, typename MM > inline long width_step( const matrix<T,NR,NC,MM>& img ) { return img.nc()*sizeof(T); } } #endif // DLIB_MATRIX_GENERIC_iMAGE_Hh_