00001 #ifndef vil_sobel_1x3_h_
00002 #define vil_sobel_1x3_h_
00003 
00004 
00005 
00006 
00007 
00008 #include <vil/vil_image_view.h>
00009 
00010 
00011 
00012 
00013 
00014 template<class srcT, class destT>
00015 void vil_sobel_1x3(const vil_image_view<srcT>& src,
00016                    vil_image_view<destT>& grad_i,
00017                    vil_image_view<destT>& grad_j);
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 template<class srcT, class destT>
00026 void vil_sobel_1x3(const vil_image_view<srcT>& src,
00027                    vil_image_view<destT>& grad_ij);
00028 
00029 
00030 
00031 
00032 
00033 template<class srcT, class destT>    
00034 void vil_sobel_1x3_1plane(const srcT* src,
00035                           vcl_ptrdiff_t s_istep, vcl_ptrdiff_t s_jstep,
00036                           destT* gi, vcl_ptrdiff_t gi_istep, vcl_ptrdiff_t gi_jstep,
00037                           destT* gj, vcl_ptrdiff_t gj_istep, vcl_ptrdiff_t gj_jstep,
00038                           unsigned ni, unsigned nj);
00039 
00040 
00041 
00042 
00043 
00044 VCL_DEFINE_SPECIALIZATION
00045 void vil_sobel_1x3_1plane(const unsigned char* src,
00046                           vcl_ptrdiff_t s_istep, vcl_ptrdiff_t s_jstep,
00047                           float* gi, vcl_ptrdiff_t gi_istep, vcl_ptrdiff_t gi_jstep,
00048                           float* gj, vcl_ptrdiff_t gj_istep, vcl_ptrdiff_t gj_jstep,
00049                           unsigned ni, unsigned nj);
00050 
00051 
00052 
00053 
00054 VCL_DEFINE_SPECIALIZATION
00055 void vil_sobel_1x3_1plane(const unsigned char* src,
00056                           vcl_ptrdiff_t s_istep, vcl_ptrdiff_t s_jstep,
00057                           double* gi, vcl_ptrdiff_t gi_istep, vcl_ptrdiff_t gi_jstep,
00058                           double* gj, vcl_ptrdiff_t gj_istep, vcl_ptrdiff_t gj_jstep,
00059                           unsigned ni, unsigned nj);
00060 
00061 
00062 
00063 
00064 VCL_DEFINE_SPECIALIZATION
00065 void vil_sobel_1x3_1plane(const float* src,
00066                           vcl_ptrdiff_t s_istep, vcl_ptrdiff_t s_jstep,
00067                           float* gi, vcl_ptrdiff_t gi_istep, vcl_ptrdiff_t gi_jstep,
00068                           float* gj, vcl_ptrdiff_t gj_istep, vcl_ptrdiff_t gj_jstep,
00069                           unsigned ni, unsigned nj);
00070 
00071 
00072 
00073 
00074 VCL_DEFINE_SPECIALIZATION
00075 void vil_sobel_1x3_1plane(const double* src,
00076                           vcl_ptrdiff_t s_istep, vcl_ptrdiff_t s_jstep,
00077                           double* gi, vcl_ptrdiff_t gi_istep, vcl_ptrdiff_t gi_jstep,
00078                           double* gj, vcl_ptrdiff_t gj_istep, vcl_ptrdiff_t gj_jstep,
00079                           unsigned ni, unsigned nj);
00080 
00081 #endif // vil_sobel_1x3_h_