TuttleOFX  1
convolve.hpp File Reference
#include "correlate.hpp"
#include "detail/kernel.hpp"
#include <terry/numeric/scalar.hpp>
#include <terry/numeric/init.hpp>
#include <terry/numeric/assign.hpp>
#include <boost/gil/gil_config.hpp>
#include <boost/gil/image_view_factory.hpp>
#include <boost/gil/algorithm.hpp>
#include <boost/gil/metafunctions.hpp>
#include <boost/numeric/conversion/cast.hpp>
#include <boost/mpl/bool.hpp>
#include <cstddef>
#include <cassert>
#include <algorithm>
#include <vector>
#include <functional>
Include dependency graph for convolve.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  terry::filter::detail::correlator_n< PixelAccum >
struct  terry::filter::detail::correlator_k< Size, PixelAccum >

Namespaces

namespace  terry
namespace  terry::filter
namespace  terry::filter::detail

Enumerations

enum  terry::filter::convolve_boundary_option {
  terry::filter::convolve_option_output_ignore, terry::filter::convolve_option_output_zero, terry::filter::convolve_option_extend_padded, terry::filter::convolve_option_extend_zero,
  terry::filter::convolve_option_extend_constant, terry::filter::convolve_option_extend_mirror
}

Functions

template<typename T >
GIL_FORCEINLINE bool terry::filter::detail::operator>= (const point2< T > &p1, const point2< T > &p2)
template<typename T >
GIL_FORCEINLINE bool terry::filter::detail::operator<= (const point2< T > &p1, const point2< T > &p2)
template<typename T , typename T2 >
GIL_FORCEINLINE bool terry::filter::detail::operator>= (const point2< T > &p, const T2 v)
template<typename T , typename T2 >
GIL_FORCEINLINE bool terry::filter::detail::operator<= (const point2< T > &p, const T2 v)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView , typename Correlator >
void terry::filter::detail::correlate_rows_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, Correlator correlator)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::true_ rows, const boost::mpl::false_)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::true_ rows, const boost::mpl::true_)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::false_ rows, const boost::mpl::false_ fixed)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::false_ rows, const boost::mpl::true_ fixed)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_auto_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::true_ fixed)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_auto_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::false_)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_auto (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::true_ autoEnabled)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::detail::correlate_1d_auto (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option, const boost::mpl::false_ autoEnabled)
template<bool autoEnabled, bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_1d_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_1d_auto (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<bool rows, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_1d (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<bool autoEnabled, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows_auto (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl=typename SrcView::point_t(0, 0), const convolve_boundary_option option=convolve_option_extend_zero)
template<bool autoEnabled, typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_cols_imp (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_cols_auto (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , typename SrcView , typename Kernel , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_cols (const SrcView &src, const Kernel &ker, const DstView &dst, const typename SrcView::point_t &dst_tl=typename SrcView::point_t(0, 0), const convolve_boundary_option option=convolve_option_extend_zero)
template<bool autoEnabled, typename PixelAccum , template< typename > class Alloc, typename SrcView , typename KernelX , typename KernelY , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows_cols_imp (const SrcView &src, const KernelX &kernelX, const KernelY &kernelY, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , template< typename > class Alloc, typename SrcView , typename KernelX , typename KernelY , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows_cols_auto (const SrcView &src, const KernelX &kernelX, const KernelY &kernelY, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)
template<typename PixelAccum , template< typename > class Alloc, typename SrcView , typename KernelX , typename KernelY , typename DstView >
GIL_FORCEINLINE void terry::filter::correlate_rows_cols (const SrcView &src, const KernelX &kernelX, const KernelY &kernelY, const DstView &dst, const typename SrcView::point_t &dst_tl, const convolve_boundary_option option=convolve_option_extend_zero)