Hugin trunk 0.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR > Class Template Reference

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

#include <Interpolators.h>

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

◆ MaskType

Definition at line 478 of file Interpolators.h.

◆ PixelType

Definition at line 477 of file Interpolators.h.

◆ RealPixelType

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

◆ ImageMaskInterpolator() [1/2]

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.

◆ ImageMaskInterpolator() [2/2]

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

◆ interpolateInside()

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

◆ operator()()

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
xx position, relative to i and alpha.first
yy position, relative to i and alpha.first
resultthe interpolation result
Returns
true if interpolation ok, false if one or more pixels were masked out

Definition at line 661 of file Interpolators.h.

References vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::interpolateInside(), vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_h, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_inter, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_mIter, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_sAcc, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_sIter, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_w, vigra_ext::ImageMaskInterpolator< SrcImageIterator, SrcAccessor, MaskIterator, MaskAccessor, INTERPOLATOR >::m_warparound, and threshold().

Member Data Documentation

◆ m_h

◆ m_inter

◆ m_mAcc

Definition at line 485 of file Interpolators.h.

◆ m_mIter

◆ m_sAcc

◆ m_sIter

◆ m_w

◆ m_warparound


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