vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR > Class Template Reference

"wrapper" for efficient interpolation access to an image More...

#include <Interpolators.h>

List of all members.

Public Types

typedef SrcAccessor::value_type PixelType
typedef MaskAccessor::value_type MaskType

Public Member Functions

 ImageMaskInterpolator (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > const &src, std::pair< MaskIterator, MaskAccessor > mask, INTERPOLATOR &inter, bool warparound)
 Construct interpolator for an given image.
 ImageMaskInterpolator (SrcImageIterator src_upperleft, SrcImageIterator src_lowerright, SrcAccessor sa, MaskIterator mask_upperleft, MaskAccessor ma, INTERPOLATOR &inter, bool warparound)
 Construct interpolator for specific image.
bool operator() (double x, double y, PixelType &result, MaskType &mask) const
 Interpolate the data item at a non-integer position x, y.
bool interpolateInside (int srcx, int srcy, double dx, double dy, PixelType &result, MaskType &mask) const
 Interpolate without boundary check.

Private Types

typedef vigra::NumericTraits<
PixelType >::RealPromote 
RealPixelType

Private Attributes

SrcImageIterator m_sIter
SrcAccessor m_sAcc
MaskIterator m_mIter
MaskAccessor m_mAcc
int m_w
int m_h
bool m_warparound
INTERPOLATOR m_inter


Detailed Description

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
class vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >

"wrapper" for efficient interpolation access to an image

Tailored for panorama remapping. Supports warparound boundary condition of left and right as well as masks

Definition at line 474 of file Interpolators.h.


Member Typedef Documentation

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
typedef MaskAccessor::value_type vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::MaskType
 

Definition at line 478 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
typedef SrcAccessor::value_type vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::PixelType
 

Definition at line 477 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
typedef vigra::NumericTraits<PixelType>::RealPromote vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::RealPixelType [private]
 

Definition at line 480 of file Interpolators.h.


Constructor & Destructor Documentation

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::ImageMaskInterpolator vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > const &  src,
std::pair< MaskIterator, MaskAccessor >  mask,
INTERPOLATOR &  inter,
bool  warparound
[inline]
 

Construct interpolator for an given image.

Definition at line 495 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::ImageMaskInterpolator SrcImageIterator  src_upperleft,
SrcImageIterator  src_lowerright,
SrcAccessor  sa,
MaskIterator  mask_upperleft,
MaskAccessor  ma,
INTERPOLATOR &  inter,
bool  warparound
[inline]
 

Construct interpolator for specific image.

Definition at line 513 of file Interpolators.h.


Member Function Documentation

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
bool vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::interpolateInside int  srcx,
int  srcy,
double  dx,
double  dy,
PixelType result,
MaskType mask
const [inline]
 

Interpolate without boundary check.

Definition at line 749 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
bool vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::operator() double  x,
double  y,
PixelType result,
MaskType mask
const [inline]
 

Interpolate the data item at a non-integer position x, y.

It checks if the interpolation would access a pixel with alpha = 0 and returns false in that case.

be careful, no bounds checking is done here. take INTERPOLATOR::size into accout before iterating over the picture.

the used image pixels are [i-(n/2 -1) .. i+n/2], where n is the size of the interpolator

Parameters:
x x position, relative to i and alpha.first
y y position, relative to i and alpha.first
result the interpolation result
Returns:
true if interpolation ok, false if one or more pixels were masked out

Definition at line 661 of file Interpolators.h.


Member Data Documentation

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
int vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_h [private]
 

Definition at line 487 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
INTERPOLATOR vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_inter [private]
 

Definition at line 490 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
MaskAccessor vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_mAcc [private]
 

Definition at line 485 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
MaskIterator vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_mIter [private]
 

Definition at line 484 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
SrcAccessor vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_sAcc [private]
 

Definition at line 483 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
SrcImageIterator vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_sIter [private]
 

Definition at line 482 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
int vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_w [private]
 

Definition at line 486 of file Interpolators.h.

template<typename SrcImageIterator, typename SrcAccessor, typename MaskIterator, typename MaskAccessor, typename INTERPOLATOR>
bool vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_warparound [private]
 

Definition at line 488 of file Interpolators.h.


The documentation for this class was generated from the following file:
Generated on Thu Jul 31 01:25:58 2014 for Hugintrunk by  doxygen 1.3.9.1