[an error occurred while processing this directive]
Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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.


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


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
 

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


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.

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.


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.

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


The documentation for this class was generated from the following file:

Generated on Mon Sep 20 01:01:37 2010 for Hugintrunk by doxygen 1.3.9.1