Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
vigra_ext Namespace Reference

Namespaces

 detail
 
 EMoR
 
 poisson
 

Classes

struct  CorrelationResult
 Maximum of correlation, position and value. More...
 
class  RotateTransform
 clockwise rotation around a origin point, and a translation afterwards. More...
 
class  FileRAII
 Class used for opening files. More...
 
class  ReadFunctorAccessor
 This class can be used to apply a function when reading the input image. More...
 
class  WriteFunctorAccessor
 This class can be used to apply a function when writing to an image. More...
 
class  SplitVector2Accessor
 define a write only accessor for a virtual Image<TinyVector<Acc1::value_type>, 2> image, which actually consists of two Images. More...
 
class  SplitVectorNAccessor
 split a vector image into a vector and a scalar image More...
 
class  MergeScalarScalar2VectorAccessor
 merge two scalar images into a vector image. More...
 
class  MergeVectorScalar2VectorAccessor
 merge a vector and a scalar image into a vector image. More...
 
class  ImageSplittingAccessor
 An accessor to encapsulate write access to a multiband image, and move divide it into two images. More...
 
struct  Multiply
 a sample functor that can be used to multiply pixel values with a constant More...
 
class  ReduceToHDRFunctor
 
struct  Error_GpuNumericTraits_not_specialized_for_this_case
 
struct  GpuNumericTraits
 
struct  interp_nearest
 several classes to calculate interpolator weights, More...
 
struct  interp_bilin
 simple bilinear interpolation More...
 
struct  interp_cubic
 cubic interpolation More...
 
struct  interp_spline16
 spline16 interpolation More...
 
struct  interp_spline36
 spline36 interpolation More...
 
struct  interp_spline64
 spline64 interpolation More...
 
struct  interp_sinc
 sinc interpolation, with variable width More...
 
class  ImageInterpolator
 "wrapper" for efficient interpolation access to an image More...
 
class  ImageMaskInterpolator
 "wrapper" for efficient interpolation access to an image More...
 
class  InterpolatingAccessor
 interpolation at non-integer positions. More...
 
struct  LUTFunctor
 functor to apply a LUT to gray and color images. More...
 
struct  InvLUTFunctor
 functor to apply a LUT to gray and color images. More...
 
struct  ExposureResponseFunctor
 just apply exposure and response to linear data More...
 
class  ROIImage
 brief description. More...
 
struct  CreateAlphaTiffImage
 
struct  CreateAlphaTiffImage< vigra::RGBValue< unsigned char > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< short > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< unsigned short > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< int > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< unsigned int > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< float > >
 
struct  CreateAlphaTiffImage< vigra::RGBValue< double > >
 
struct  CreateAlphaTiffImage< unsigned char >
 
struct  CreateAlphaTiffImage< short >
 
struct  CreateAlphaTiffImage< unsigned short >
 
struct  CreateAlphaTiffImage< int >
 
struct  CreateAlphaTiffImage< unsigned int >
 
struct  CreateAlphaTiffImage< float >
 
struct  CreateAlphaTiffImage< double >
 
struct  LUTTraits
 
struct  PointPairT
 
struct  ValueTypeTraits
 
class  FindComponentsMinMax
 
struct  OverlapSizeCounter
 count pixels that are > 0 in both images More...
 
struct  NestFunctor
 functor to combine two functors: result = f1( f2(v) ) More...
 
struct  MaskPixelCounter
 count pixels that are > 0 in a single image More...
 
struct  PassThroughFunctor
 does nothing More...
 
struct  LinearTransform
 
struct  ApplyLogFunctor
 
struct  ApplyGammaFunctor
 
struct  ApplyGammaFunctor< vigra::UInt16, vigra::UInt8 >
 
class  VigCorrFlatDivFunctor
 
class  VigCorrDivFunctor
 
class  VigCorrFlatAddFunctor
 
class  VigCorrAddFunctor
 
struct  PolySqDistFunctor
 
struct  DitherFunctor
 Dither code taken from enblend and adapted to a standalone functor. More...
 
struct  GammaFunctor
 
struct  LinearTransformFunctor
 Calculate ret = p * a + b. More...
 

Typedefs

typedef PointPairT< float > PointPair
 
typedef PointPairT
< vigra::RGBValue< float > > 
PointPairRGB
 

Enumerations

enum  {
  XGL_BYTE =0, XGL_UNSIGNED_BYTE, XGL_SHORT, XGL_UNSIGNED_SHORT,
  XGL_INT, XGL_UNSIGNED_INT, XGL_FLOAT, XGL_RGBA8,
  XGL_RGBA16, XGL_RGBA32F, XGL_LUMINANCE8_ALPHA8, XGL_LUMINANCE16_ALPHA16,
  XGL_LUMINANCE_ALPHA32F, XGL_RGB8, XGL_RGB16, XGL_RGB32F,
  XGL_LUMINANCE8, XGL_LUMINANCE16, XGL_LUMINANCE32F, XGL_LUMINANCE,
  XGL_RGB, XGL_LUMINANCE_ALPHA, XGL_RGBA
}
 
enum  Interpolator {
  INTERP_CUBIC = 0, INTERP_SPLINE_16, INTERP_SPLINE_36, INTERP_SINC_256,
  INTERP_SPLINE_64, INTERP_BILINEAR, INTERP_NEAREST_NEIGHBOUR, INTERP_SINC_1024
}
 enum with all interpolation methods More...
 

Functions

template<class SrcImageIterator , class SrcAccessor >
void applyMask (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > img, HuginBase::MaskPolygonVector masks)
 
template<class SrcImage , class DestImage , class KernelImage >
CorrelationResult correlateImageFast (SrcImage &src, DestImage &dest, KernelImage &kernel, vigra::Diff2D kul, vigra::Diff2D klr, double threshold=0.7)
 correlate a template with an image. More...
 
template<class Iterator , class Accessor >
CorrelationResult subpixelMaxima (vigra::triple< Iterator, Iterator, Accessor > img, vigra::Diff2D max)
 find the subpixel maxima by fitting 2nd order polynoms to x and y. More...
 
template<class IMAGET , class ACCESSORT , class IMAGES , class ACCESSORS >
CorrelationResult PointFineTune (const IMAGET &templImg, ACCESSORT access_t, vigra::Diff2D templPos, int templSize, const IMAGES &searchImg, ACCESSORS access_s, vigra::Diff2D searchPos, int sWidth)
 fine tune a point with normalized cross correlation More...
 
template<class IMAGET , class IMAGES >
CorrelationResult PointFineTuneRotSearch (const IMAGET &templImg, vigra::Diff2D templPos, int templSize, const IMAGES &searchImg, vigra::Diff2D searchPos, int sWidth, double startAngle, double stopAngle, int angleSteps)
 fine tune a point with normalized cross correlation, searches x,y and phi (rotation around z) More...
 
template<class SrcIterator , class SrcAccessor , class DestIterator , class DestAccessor , class KernelIterator , class KernelAccessor >
CorrelationResult correlateImage (SrcIterator sul, SrcIterator slr, SrcAccessor as, DestIterator dul, DestAccessor ad, KernelIterator ki, KernelAccessor ak, vigra::Diff2D kul, vigra::Diff2D klr, double threshold=0.7)
 correlate a template with an image. More...
 
template<typename M >
double calcDeterminant3 (const M &m)
 calculate the determinat of a 3x3 matrix using the sarrus formula More...
 
template<class T >
void FitPolynom (T x, T xend, T y, double &a, double &b, double &c)
 fit a second order polynom to a data set More...
 
template<class T >
zeroNegative (T p)
 Set negative elements of a pixel to zero. More...
 
template<class T >
vigra::RGBValue< T > zeroNegative (vigra::RGBValue< T > p)
 Set negative elements of a pixel to zero. More...
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void transformImageIntern (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, TRANSFORM &transform, PixelTransform &pixelTransform, vigra::Diff2D destUL, Interpolator interp, bool warparound, AppBase::ProgressDisplay *progress, bool singleThreaded)
 Transform an image into the panorama. More...
 
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void transformImageAlphaIntern (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, std::pair< SrcAlphaIterator, SrcAlphaAccessor > srcAlpha, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, TRANSFORM &transform, PixelTransform &pixelTransform, vigra::Diff2D destUL, Interpolator interp, bool warparound, AppBase::ProgressDisplay *progress, bool singleThreaded)
 transform input images with alpha channel More...
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void transformImage (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, vigra::Diff2D destUL, TRANSFORM &transform, PixelTransform &pixelTransform, bool warparound, Interpolator interpol, AppBase::ProgressDisplay *progress, bool singleThreaded=false)
 Transform an image into the panorama. More...
 
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void transformImageAlpha (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, std::pair< SrcAlphaIterator, SrcAlphaAccessor > srcAlpha, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, vigra::Diff2D destUL, TRANSFORM &transform, PixelTransform &pixelTransform, bool warparound, Interpolator interpol, AppBase::ProgressDisplay *progress, bool singleThreaded=false)
 Transform image, and respect a possible alpha channel. More...
 
void SetGPUDebugMessages (const bool doPrint)
 
bool transformImageGPUIntern (const std::string &coordXformGLSL, const std::string &interpolatorGLSL, const int interpolatorSize, const std::string &photometricGLSL, const vector< double > &invLut, const vector< double > &destLut, const vigra::Diff2D srcSize, const void *const srcBuffer, const int srcGLInternalFormat, const int srcGLTransferFormat, const int srcGLFormat, const int srcGLType, const void *const srcAlphaBuffer, const int srcAlphaGLType, const vigra::Diff2D destUL, const vigra::Diff2D destSize, void *const destBuffer, const int destGLInternalFormat, const int destGLTransferFormat, const int destGLFormat, const int destGLType, void *const destAlphaBuffer, const int destAlphaGLType, const bool warparound)
 
 DEFINE_GPUNUMERICTRAITS (vigra::Int8, XGL_LUMINANCE8_ALPHA8, XGL_RGBA8, XGL_LUMINANCE8, XGL_RGB8, XGL_BYTE)
 
 DEFINE_GPUNUMERICTRAITS (vigra::UInt8, XGL_LUMINANCE8_ALPHA8, XGL_RGBA8, XGL_LUMINANCE8, XGL_RGB8, XGL_UNSIGNED_BYTE)
 
 DEFINE_GPUNUMERICTRAITS (vigra::Int16, XGL_LUMINANCE16_ALPHA16, XGL_RGBA16, XGL_LUMINANCE16, XGL_RGB16, XGL_SHORT)
 
 DEFINE_GPUNUMERICTRAITS (vigra::UInt16, XGL_LUMINANCE16_ALPHA16, XGL_RGBA16, XGL_LUMINANCE16, XGL_RGB16, XGL_UNSIGNED_SHORT)
 
 DEFINE_GPUNUMERICTRAITS (vigra::Int32, XGL_LUMINANCE_ALPHA32F, XGL_RGBA32F, XGL_LUMINANCE32F, XGL_RGB32F, XGL_INT)
 
 DEFINE_GPUNUMERICTRAITS (vigra::UInt32, XGL_LUMINANCE_ALPHA32F, XGL_RGBA32F, XGL_LUMINANCE32F, XGL_RGB32F, XGL_UNSIGNED_INT)
 
 DEFINE_GPUNUMERICTRAITS (float, XGL_LUMINANCE_ALPHA32F, XGL_RGBA32F, XGL_LUMINANCE32F, XGL_RGB32F, XGL_FLOAT)
 
 DEFINE_GPUNUMERICTRAITS (double, XGL_LUMINANCE_ALPHA32F, XGL_RGBA32F, XGL_LUMINANCE32F, XGL_RGB32F, XGL_FLOAT)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void transformImageGPUIntern (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, TRANSFORM &transform, PixelTransform &pixelTransform, vigra::Diff2D destUL, Interpolator interp, bool warparound, AppBase::ProgressDisplay *progress)
 Transform an image into the panorama. More...
 
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void transformImageAlphaGPUIntern (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, std::pair< SrcAlphaIterator, SrcAlphaAccessor > srcAlpha, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, TRANSFORM &transform, PixelTransform &pixelTransform, vigra::Diff2D destUL, Interpolator interp, bool warparound, AppBase::ProgressDisplay *progress)
 transform input images with alpha channel More...
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void transformImageGPU (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, vigra::Diff2D destUL, TRANSFORM &transform, PixelTransform &pixelTransform, bool warparound, Interpolator interpol, AppBase::ProgressDisplay *progress)
 Transform an image into the panorama. More...
 
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void transformImageAlphaGPU (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, std::pair< SrcAlphaIterator, SrcAlphaAccessor > srcAlpha, vigra::triple< DestImageIterator, DestImageIterator, DestAccessor > dest, std::pair< AlphaImageIterator, AlphaAccessor > alpha, vigra::Diff2D destUL, TRANSFORM &transform, PixelTransform &pixelTransform, bool warparound, Interpolator interpol, AppBase::ProgressDisplay *progress)
 Transform image, and respect a possible alpha channel. More...
 
template<class ImageIter , class ImageAcc >
void findInterestPointsPartial (vigra::triple< ImageIter, ImageIter, ImageAcc > img, const vigra::Rect2D &rect, double scale, unsigned nPoints, std::multimap< double, vigra::Diff2D > &points)
 
static double sinc (double x)
 
static double cubic01 (double x)
 
static double cubic12 (double x)
 
static const double A (-0.75)
 
template<class VECTOR >
void createGammaLUT (double gamma, VECTOR &lut)
 
template<class VEC , class VEC2 >
void resizeLUT (const VEC &iLUT, VEC2 &oLUT)
 
template<class LUT >
void enforceMonotonicity (LUT &lut)
 enforce monotonicity of an array (mostly used for lookup tables) More...
 
template<class ImageIn , class Image >
void reduceNTimes (ImageIn &in, Image &out, int n)
 
template<class Image , class ImageMask >
void reduceNTimes (Image &in, ImageMask &inMask, Image &out, ImageMask &outMask, int n)
 
template<class ImageIn , class ImageOut >
void reduceToNextLevel (ImageIn &in, ImageOut &out)
 
template<class ImageIn , class ImageInMask , class ImageOut , class ImageOutMask >
void reduceToNextLevel (ImageIn &in, ImageInMask &inMask, ImageOut &out, ImageOutMask &outMask)
 
template<class Image >
void reduceToNextLevelOld (Image &in, Image &out)
 Gaussian reduction to next pyramid level. More...
 
template<class ImgIter , class ImgAcc >
vigra::triple< ImgIter,
ImgIter, ImgAcc > 
applyRect (vigra::Rect2D &r, vigra::triple< ImgIter, ImgIter, ImgAcc > img)
 apply a roi to an image area More...
 
template<class ImgIter , class ImgAcc >
vigra::pair< ImgIter, ImgAcc > applyRect (vigra::Rect2D &r, vigra::pair< ImgIter, ImgAcc > img)
 apply a roi to an image More...
 
template<typename Image , typename Mask >
vigra::triple< typename
ROIImage< Image, Mask >
::image_const_traverser,
typename ROIImage< Image, Mask >
::image_const_traverser,
typename ROIImage< Image, Mask >
::ImageConstAccessor > 
srcImageRange (const ROIImage< Image, Mask > &img)
 helper function for ROIImages More...
 
template<typename Image , typename Mask >
vigra::pair< typename ROIImage
< Image, Mask >
::image_const_traverser,
typename ROIImage< Image, Mask >
::ImageConstAccessor > 
srcImage (const ROIImage< Image, Mask > &img)
 
template<class Image , class Alpha >
vigra::triple< typename
ROIImage< Image, Alpha >
::image_traverser, typename
ROIImage< Image, Alpha >
::image_traverser, typename
ROIImage< Image, Alpha >
::ImageAccessor > 
destImageRange (ROIImage< Image, Alpha > &img)
 
template<class Image , class Alpha >
vigra::pair< typename ROIImage
< Image, Alpha >
::image_traverser, typename
ROIImage< Image, Alpha >
::ImageAccessor > 
destImage (ROIImage< Image, Alpha > &img)
 
template<class Image , class Alpha >
vigra::triple< typename
ROIImage< Image, Alpha >
::mask_const_traverser,
typename ROIImage< Image,
Alpha >::mask_const_traverser,
typename ROIImage< Image,
Alpha >::MaskConstAccessor > 
srcMaskRange (const ROIImage< Image, Alpha > &img)
 
template<class Image , class Alpha >
vigra::pair< typename ROIImage
< Image, Alpha >
::mask_const_traverser,
typename ROIImage< Image,
Alpha >::MaskConstAccessor > 
srcMask (const ROIImage< Image, Alpha > &img)
 
template<class Image , class Alpha >
vigra::triple< typename
ROIImage< Image, Alpha >
::mask_traverser, typename
ROIImage< Image, Alpha >
::mask_traverser, typename
ROIImage< Image, Alpha >
::MaskAccessor > 
destMaskRange (ROIImage< Image, Alpha > &img)
 
template<class Image , class Alpha >
vigra::pair< typename ROIImage
< Image, Alpha >
::mask_traverser, typename
ROIImage< Image, Alpha >
::MaskAccessor > 
destMask (ROIImage< Image, Alpha > &img)
 
template<class ImgIter , class ImgAcc , class MaskIter , class MaskAcc , class Functor >
void inspectImagesIf (std::vector< ImgIter > imgs, std::vector< MaskIter > masks, std::vector< vigra::Rect2D > rois, Functor &f)
 function to inspect a variable number of images. More...
 
template<class ROIIMG , class DestIter , class DestAccessor , class MaskIter , class MaskAccessor , class FUNCTOR >
void reduceROIImages (std::vector< ROIIMG * > images, vigra::triple< DestIter, DestIter, DestAccessor > dest, vigra::pair< MaskIter, MaskAccessor > destMask, FUNCTOR &reduce)
 algorithm to reduce a set of ROI images More...
 
template<class ImageType , class MaskType >
void PoissonBlend (ImageType &image1, const ImageType &image2, const MaskType &mask2, const vigra::BImage &labels, const vigra::Point2D &offsetPoint, const bool doWrap)
 
template<class ImageType , class MaskType >
void MergeImages (ImageType &image1, MaskType &mask1, const ImageType &image2, const MaskType &mask2, const vigra::Diff2D offset, const bool wrap, const bool hardSeam)
 
void createTiffDirectory (vigra::TiffImage *tiff, const std::string &pagename, const std::string &documentname, const std::string comp, uint16_t page, uint16_t nImg, vigra::Diff2D offset, vigra::Size2D fullSize, const vigra::ImageExportInfo::ICCProfile &icc)
 write a new Tiff directory, for a new layer More...
 
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
static void createScalarATiffImage (ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff, int sampleformat)
 internal function to create a scalar tiff image with alpha channel More...
 
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
void createRGBATiffImage (ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff, int sampleformat)
 internal function to create a RGB tiff image with alpha channel More...
 
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
void createAlphaTiffImage (ImageIterator upperleft, ImageIterator lowerright, ImageAccessor a, AlphaIterator alphaUpperleft, AlphaAccessor alphaA, vigra::TiffImage *tiff)
 
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class BImageAccessor >
void createAlphaTiffImage (vigra::triple< ImageIterator, ImageIterator, ImageAccessor > src, vigra::pair< AlphaIterator, BImageAccessor > alpha, vigra::TiffImage *tiff)
 save an image and an alpha channel to a tiff file. More...
 
 LUT_TRAITS (unsigned char, 0, UCHAR_MAX)
 
 LUT_TRAITS (signed char, SCHAR_MIN, SCHAR_MAX)
 
 LUT_TRAITS (unsigned short, 0, USHRT_MAX)
 
 LUT_TRAITS (signed short, SHRT_MIN, SHRT_MAX)
 
 LUT_TRAITS (unsigned int, 0, UINT_MAX)
 
 LUT_TRAITS (signed int, INT_MIN, INT_MAX)
 
 LUT_TRAITS (float, 0.0f, 1.0f)
 
 LUT_TRAITS (double, 0.0, 1.0)
 
double getMaxValForPixelType (const std::string &v)
 
 VT_TRAITS (vigra::UInt8)
 
 VT_TRAITS (vigra::Int16)
 
 VT_TRAITS (vigra::UInt16)
 
 VT_TRAITS (vigra::Int32)
 
 VT_TRAITS (vigra::UInt32)
 
 VT_TRAITS (float)
 
 VT_TRAITS (double)
 
float pow (float a, double b)
 
template<class T , unsigned int R, unsigned int G, unsigned int B>
vigra::RGBValue< T, R, G, B > pow (vigra::RGBValue< T, R, G, B > const &v, double e)
 component-wise absolute value More...
 
template<class V1 , unsigned int R, unsigned int G, unsigned int B, class V2 >
vigra::RGBValue< V1, R, G, B > & operator+= (vigra::RGBValue< V1, R, G, B > &l, V2 const &r)
 add a scalar to all components More...
 
template<class T , unsigned int RIDX, unsigned int GIDX, unsigned int BIDX>
vigra::RGBValue< T, RIDX, GIDX,
BIDX > 
log (vigra::RGBValue< T, RIDX, GIDX, BIDX > const &v)
 component-wise logarithm More...
 
template<class T , unsigned int RIDX, unsigned int GIDX, unsigned int BIDX>
vigra::RGBValue< T, RIDX, GIDX,
BIDX > 
log10 (vigra::RGBValue< T, RIDX, GIDX, BIDX > const &v)
 component-wise logarithm More...
 
template<class V1 , unsigned int R, unsigned int G, unsigned int B, class V2 >
vigra::PromoteTraits
< vigra::RGBValue< V1, R, G, B >
, V2 >::Promote 
operator+ (vigra::RGBValue< V1, R, G, B > const &r1, V2 const &r2)
 add a scalar to all components More...
 
template<class V , int SIZE, class D1 , class D2 >
vigra::TinyVector< V, SIZE > pow (vigra::TinyVector< V, SIZE > const &v, double e)
 Apply pow() function to each vector component. More...
 
template<class V , int SIZE, class D1 , class D2 >
vigra::TinyVector< V, SIZE > log (vigra::TinyVector< V, SIZE > const &v, double e)
 Apply log() function to each vector component. More...
 
template<class V >
getMaxComponent (vigra::RGBValue< V > const &v)
 get the maximum component of a vector (also works for single pixel types...) More...
 
template<class V >
getMaxComponent (V v)
 get the maximum component of a vector (also works for single pixel types...) More...
 
template<class V >
getMinComponent (vigra::RGBValue< V > const &v)
 get the maximum component of a vector (also works for single pixel types...) More...
 
template<class V >
getMinComponent (V v)
 get the maximum component of a vector (also works for single pixel types...) More...
 
template<class ImgIter , class ImgAccessor , class AlphaIter , class AlphaAccessor >
void applyExposureClipMask (vigra::triple< ImgIter, ImgIter, ImgAccessor > image, vigra::triple< AlphaIter, AlphaIter, AlphaAccessor > mask, double lowerLimit, double upperLimit)
 
template<class SrcImageIterator , class SrcAccessor >
void circularCrop (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > img, hugin_utils::FDiff2D middle, double radius)
 Apply a circular crop to img. More...
 
template<class T >
vigra::NumericTraits< T >
::RealPromote 
normalizeValue (T v, vigra::VigraTrueType)
 normalize a pixel to 0..1 Only has an effect on integer pixel types More...
 
template<class T >
vigra::NumericTraits< T >
::RealPromote 
normalizeValue (T v, vigra::VigraFalseType)
 
template<class SrcIterator , class SrcAccessor , class DestIterator , class DestAccessor , class T >
void applyMapping (vigra::triple< SrcIterator, SrcIterator, SrcAccessor > img, vigra::pair< DestIterator, DestAccessor > dest, T min, T max, int mapping)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void transformImageSpatial (SrcImageIterator src_upperleft, SrcImageIterator src_lowerright, SrcAccessor sa, DestImageIterator dest_upperleft, DestAccessor da, Functor const &f, vigra::Diff2D ul)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void transformImageSpatial (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::pair< DestImageIterator, DestAccessor > dest, Functor const &f, vigra::Diff2D ul)
 
template<class ImageType >
void ConvertTo8Bit (ImageType &image)
 converts to given image to fit into 0..255 More...
 
bool isTrueType (vigra::VigraFalseType)
 
bool isTrueType (vigra::VigraTrueType)
 
template<class T >
bool ditheringNeeded (T const &)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void applyRadialVigCorrection (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::pair< DestImageIterator, DestAccessor > dest, double cx, double cy, Functor const &f)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void applyRadialVigCorrection (SrcImageIterator src_upperleft, SrcImageIterator src_lowerright, SrcAccessor sa, DestImageIterator dest_upperleft, DestAccessor da, double cx, double cy, Functor const &f)
 
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void applyRadialVigCorrectionDither (vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor > src, vigra::pair< DestImageIterator, DestAccessor > dest, double cx, double cy, Functor const &f, bool dither)
 Apply flatfield correction with dithering. More...
 
template<class ImgIter , class ImgAccessor , class FFIter , class FFAccessor , class DestIter , class DestAccessor , class Functor >
void combineTwoImagesDither (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< FFIter, FFAccessor > ffImg, vigra::pair< DestIter, DestAccessor > destImg, Functor const &f, bool dither)
 Apply combine two images. More...
 
template<class ImgIter , class ImgAccessor , class FFIter , class FFAccessor , class DestIter , class DestAccessor >
void flatfieldVigCorrection (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< FFIter, FFAccessor > ffImg, vigra::pair< DestIter, DestAccessor > destImg, double gamma, double gammaMaxVal, bool division, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote a, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote b, bool dither)
 
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void radialVigCorrection (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< DestIter, DestAccessor > destImg, double gamma, double gammaMaxVal, const std::vector< double > &radCoeff, hugin_utils::FDiff2D center, bool division, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote a, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote b, bool dither)
 
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void applyBrightnessCorrection (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< DestIter, DestAccessor > destImg, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote a, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote b)
 
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void applyGammaAndBrightCorrection (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< DestIter, DestAccessor > destImg, double gamma, double maxGVal, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote a, typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote b)
 
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void applyGammaCorrection (vigra::triple< ImgIter, ImgIter, ImgAccessor > srcImg, vigra::pair< DestIter, DestAccessor > destImg, double gamma, double maxGVal)
 

Variables

static const double AA = 0.4
 
static const double W [] = {0.25 - AA / 2.0, 0.25, AA, 0.25, 0.25 - AA / 2.0}
 

Typedef Documentation

Definition at line 130 of file utils.h.

typedef PointPairT<vigra::RGBValue<float> > vigra_ext::PointPairRGB

Definition at line 131 of file utils.h.

Enumeration Type Documentation

anonymous enum
Enumerator
XGL_BYTE 
XGL_UNSIGNED_BYTE 
XGL_SHORT 
XGL_UNSIGNED_SHORT 
XGL_INT 
XGL_UNSIGNED_INT 
XGL_FLOAT 
XGL_RGBA8 
XGL_RGBA16 
XGL_RGBA32F 
XGL_LUMINANCE8_ALPHA8 
XGL_LUMINANCE16_ALPHA16 
XGL_LUMINANCE_ALPHA32F 
XGL_RGB8 
XGL_RGB16 
XGL_RGB32F 
XGL_LUMINANCE8 
XGL_LUMINANCE16 
XGL_LUMINANCE32F 
XGL_LUMINANCE 
XGL_RGB 
XGL_LUMINANCE_ALPHA 
XGL_RGBA 

Definition at line 72 of file ImageTransformsGPU.h.

enum with all interpolation methods

Enumerator
INTERP_CUBIC 
INTERP_SPLINE_16 
INTERP_SPLINE_36 
INTERP_SINC_256 
INTERP_SPLINE_64 
INTERP_BILINEAR 
INTERP_NEAREST_NEIGHBOUR 
INTERP_SINC_1024 

Definition at line 78 of file Interpolators.h.

Function Documentation

static const double vigra_ext::A ( -0.  75)
static
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void vigra_ext::applyBrightnessCorrection ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< DestIter, DestAccessor >  destImg,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  a,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  b 
)

Definition at line 513 of file VignettingCorrection.h.

References transformImage().

template<class ImgIter , class ImgAccessor , class AlphaIter , class AlphaAccessor >
void vigra_ext::applyExposureClipMask ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  image,
vigra::triple< AlphaIter, AlphaIter, AlphaAccessor >  mask,
double  lowerLimit,
double  upperLimit 
)
template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void vigra_ext::applyGammaAndBrightCorrection ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< DestIter, DestAccessor >  destImg,
double  gamma,
double  maxGVal,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  a,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  b 
)

Definition at line 526 of file VignettingCorrection.h.

References transformImage().

template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void vigra_ext::applyGammaCorrection ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< DestIter, DestAccessor >  destImg,
double  gamma,
double  maxGVal 
)

Definition at line 542 of file VignettingCorrection.h.

References transformImage().

template<class SrcIterator , class SrcAccessor , class DestIterator , class DestAccessor , class T >
void vigra_ext::applyMapping ( vigra::triple< SrcIterator, SrcIterator, SrcAccessor >  img,
vigra::pair< DestIterator, DestAccessor >  dest,
min,
max,
int  mapping 
)
template<class SrcImageIterator , class SrcAccessor >
void vigra_ext::applyMask ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  img,
HuginBase::MaskPolygonVector  masks 
)
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void vigra_ext::applyRadialVigCorrection ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::pair< DestImageIterator, DestAccessor >  dest,
double  cx,
double  cy,
Functor const &  f 
)

Definition at line 330 of file VignettingCorrection.h.

Referenced by applyRadialVigCorrectionDither().

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void vigra_ext::applyRadialVigCorrection ( SrcImageIterator  src_upperleft,
SrcImageIterator  src_lowerright,
SrcAccessor  sa,
DestImageIterator  dest_upperleft,
DestAccessor  da,
double  cx,
double  cy,
Functor const &  f 
)

Definition at line 342 of file VignettingCorrection.h.

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void vigra_ext::applyRadialVigCorrectionDither ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::pair< DestImageIterator, DestAccessor >  dest,
double  cx,
double  cy,
Functor const &  f,
bool  dither 
)

Apply flatfield correction with dithering.

If dither is true, dithering will be performed

Definition at line 374 of file VignettingCorrection.h.

References applyRadialVigCorrection().

Referenced by radialVigCorrection().

template<class ImgIter , class ImgAcc >
vigra::triple<ImgIter, ImgIter, ImgAcc> vigra_ext::applyRect ( vigra::Rect2D &  r,
vigra::triple< ImgIter, ImgIter, ImgAcc >  img 
)

apply a roi to an image area

adjusts the iterators, so that they iterate over the region specifed by r

Ignores the lowerRight in img. If r is bigger than the new iterators will point outside of the other one.

Definition at line 46 of file ROIImage.h.

References DEBUG_ASSERT.

Referenced by HuginBase::CalculateFOV::calcFOV(), HuginBase::CenterHorizontally::centerHorizontically(), HuginBase::Nona::StackingBlender::operator()(), HuginBase::Nona::detail::saveRemapped(), and HuginBase::Nona::MultiImageRemapper< ImageType, AlphaImageType >::saveRemapped().

template<class ImgIter , class ImgAcc >
vigra::pair<ImgIter, ImgAcc> vigra_ext::applyRect ( vigra::Rect2D &  r,
vigra::pair< ImgIter, ImgAcc >  img 
)

apply a roi to an image

adjusts the iterators, so that they iterate over the region specifed by r

Definition at line 66 of file ROIImage.h.

template<typename M >
double vigra_ext::calcDeterminant3 ( const M &  m)

calculate the determinat of a 3x3 matrix using the sarrus formula

Definition at line 36 of file FitPolynom.h.

template<class SrcImageIterator , class SrcAccessor >
void vigra_ext::circularCrop ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  img,
hugin_utils::FDiff2D  middle,
double  radius 
)

Apply a circular crop to img.

Sets all pixels that are outside of the circle specified by middle and radius to zero.

Definition at line 495 of file utils.h.

References hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by HuginBase::Nona::RemappedPanoImage< RemapImage, AlphaImage >::remapImage().

template<class ImgIter , class ImgAccessor , class FFIter , class FFAccessor , class DestIter , class DestAccessor , class Functor >
void vigra_ext::combineTwoImagesDither ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< FFIter, FFAccessor >  ffImg,
vigra::pair< DestIter, DestAccessor >  destImg,
Functor const &  f,
bool  dither 
)

Apply combine two images.

If dither is true, dithering will be performed

Definition at line 399 of file VignettingCorrection.h.

References vigra::omp::combineTwoImages().

Referenced by flatfieldVigCorrection().

template<class ImageType >
void vigra_ext::ConvertTo8Bit ( ImageType image)

converts to given image to fit into 0..255

Definition at line 757 of file utils.h.

References applyMapping(), destImage(), getMaxComponent(), celeste::max(), celeste::min(), and srcImageRange().

Referenced by HuginBase::Nona::WeightedStitcher< ImageType, AlphaType >::stitch().

template<class SrcIterator , class SrcAccessor , class DestIterator , class DestAccessor , class KernelIterator , class KernelAccessor >
CorrelationResult vigra_ext::correlateImage ( SrcIterator  sul,
SrcIterator  slr,
SrcAccessor  as,
DestIterator  dul,
DestAccessor  ad,
KernelIterator  ki,
KernelAccessor  ak,
vigra::Diff2D  kul,
vigra::Diff2D  klr,
double  threshold = 0.7 
)

correlate a template with an image.

most code is taken from vigra::convoluteImage. See its documentation for further information.

Correlation result already contains the maximum position and its correlation value. it should be possible to set a threshold here.

Definition at line 1080 of file Correlation.h.

References vigra_ext::EMoR::h, vigra_ext::CorrelationResult::maxi, vigra_ext::CorrelationResult::maxpos, threshold(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by PointFineTune(), and PointFineTuneRotSearch().

template<class SrcImage , class DestImage , class KernelImage >
CorrelationResult vigra_ext::correlateImageFast ( SrcImage &  src,
DestImage &  dest,
KernelImage &  kernel,
vigra::Diff2D  kul,
vigra::Diff2D  klr,
double  threshold = 0.7 
)

correlate a template with an image.

This tries to be faster than the other version, because it uses the image data directly.

most code is taken from vigra::convoluteImage. See its documentation for further information.

Correlation result already contains the maximum position and its correlation value. it should be possible to set a threshold here.

Definition at line 253 of file Correlation.h.

References DEBUG_DEBUG, vigra_ext::EMoR::h, vigra_ext::CorrelationResult::maxi, vigra_ext::CorrelationResult::maxpos, threshold(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by PointFineTune(), and PointFineTuneRotSearch().

template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
void vigra_ext::createAlphaTiffImage ( ImageIterator  upperleft,
ImageIterator  lowerright,
ImageAccessor  a,
AlphaIterator  alphaUpperleft,
AlphaAccessor  alphaA,
vigra::TiffImage *  tiff 
)
inline
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class BImageAccessor >
void vigra_ext::createAlphaTiffImage ( vigra::triple< ImageIterator, ImageIterator, ImageAccessor >  src,
vigra::pair< AlphaIterator, BImageAccessor >  alpha,
vigra::TiffImage *  tiff 
)

save an image and an alpha channel to a tiff file.

so far, only gray and RGB images are supported. the alpha channel is stored with the same type as the color channels.

If the alpha channels uses a different type as the color channel (for example 8 bit alpha channel, float color channels), they are converted to a sensible value. (0..1 for float alpha).

Definition at line 546 of file tiffUtils.h.

References createAlphaTiffImage().

template<class VECTOR >
void vigra_ext::createGammaLUT ( double  gamma,
VECTOR &  lut 
)
inline
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
void vigra_ext::createRGBATiffImage ( ImageIterator  upperleft,
ImageIterator  lowerright,
ImageAccessor  a,
AlphaIterator  alphaUpperleft,
AlphaAccessor  alphaA,
vigra::TiffImage *  tiff,
int  sampleformat 
)
template<class ImageIterator , class ImageAccessor , class AlphaIterator , class AlphaAccessor >
static void vigra_ext::createScalarATiffImage ( ImageIterator  upperleft,
ImageIterator  lowerright,
ImageAccessor  a,
AlphaIterator  alphaUpperleft,
AlphaAccessor  alphaA,
vigra::TiffImage *  tiff,
int  sampleformat 
)
static
void vigra_ext::createTiffDirectory ( vigra::TiffImage *  tiff,
const std::string &  pagename,
const std::string &  documentname,
const std::string  comp,
uint16_t  page,
uint16_t  nImg,
vigra::Diff2D  offset,
vigra::Size2D  fullSize,
const vigra::ImageExportInfo::ICCProfile &  icc 
)
inline

write a new Tiff directory, for a new layer

Parameters
tifftiff struct
pagenamepagename for tiff layer
documentnamefor tiff layer
pagepage number
nImgtotal number of pages, needed for "image page/nImg" display
offsetlayer offset in pixels (must be positive)

Definition at line 58 of file tiffUtils.h.

References DEBUG_ASSERT.

Referenced by HuginBase::Nona::TiffMultiLayerRemapper< ImageType, AlphaImageType >::saveRemapped(), and StackImagesAndMask().

static double vigra_ext::cubic01 ( double  x)
static

Definition at line 65 of file Interpolators.h.

References A().

Referenced by vigra_ext::interp_cubic::calc_coeff().

static double vigra_ext::cubic12 ( double  x)
static

Definition at line 71 of file Interpolators.h.

References A().

Referenced by vigra_ext::interp_cubic::calc_coeff().

vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::Int8  ,
XGL_LUMINANCE8_ALPHA8  ,
XGL_RGBA8  ,
XGL_LUMINANCE8  ,
XGL_RGB8  ,
XGL_BYTE   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::UInt8  ,
XGL_LUMINANCE8_ALPHA8  ,
XGL_RGBA8  ,
XGL_LUMINANCE8  ,
XGL_RGB8  ,
XGL_UNSIGNED_BYTE   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::Int16  ,
XGL_LUMINANCE16_ALPHA16  ,
XGL_RGBA16  ,
XGL_LUMINANCE16  ,
XGL_RGB16  ,
XGL_SHORT   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::UInt16  ,
XGL_LUMINANCE16_ALPHA16  ,
XGL_RGBA16  ,
XGL_LUMINANCE16  ,
XGL_RGB16  ,
XGL_UNSIGNED_SHORT   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::Int32  ,
XGL_LUMINANCE_ALPHA32F  ,
XGL_RGBA32F  ,
XGL_LUMINANCE32F  ,
XGL_RGB32F  ,
XGL_INT   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( vigra::UInt32  ,
XGL_LUMINANCE_ALPHA32F  ,
XGL_RGBA32F  ,
XGL_LUMINANCE32F  ,
XGL_RGB32F  ,
XGL_UNSIGNED_INT   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( float  ,
XGL_LUMINANCE_ALPHA32F  ,
XGL_RGBA32F  ,
XGL_LUMINANCE32F  ,
XGL_RGB32F  ,
XGL_FLOAT   
)
vigra_ext::DEFINE_GPUNUMERICTRAITS ( double  ,
XGL_LUMINANCE_ALPHA32F  ,
XGL_RGBA32F  ,
XGL_LUMINANCE32F  ,
XGL_RGB32F  ,
XGL_FLOAT   
)
template<class Image , class Alpha >
vigra::pair<typename ROIImage<Image,Alpha>::image_traverser, typename ROIImage<Image,Alpha>::ImageAccessor> vigra_ext::destImage ( ROIImage< Image, Alpha > &  img)
inline

Definition at line 324 of file ROIImage.h.

References vigra_ext::ROIImage< Image, Mask >::accessor(), and vigra_ext::ROIImage< Image, Mask >::upperLeft().

Referenced by PanoDetector::AnalyzeImage(), HuginBase::Nona::applyFlatfield(), PreviewColorPickerTool::CalcCorrectionForImage(), HuginBase::CalculateFOV::calcFOV(), HuginBase::CenterHorizontally::centerHorizontically(), convertGrayToUInt8(), deghosting::Khan< PixelType >::convertImage(), HuginBase::convertTo8Bit(), ConvertTo8Bit(), celeste::convertToUInt16(), convertToUInt8(), HuginBase::Nona::CopyImageNewSize(), correctImage(), correctRGB(), createCtrlPoints(), deghosting::Khan< PixelType >::createWeightMasks(), HuginLines::detectEdges(), TestCode::drawRansacMatches(), HuginBase::estimateImageAlpha(), vigra_ext::poisson::detail::FindEdgesForPoisson(), findInterestPointsPartial(), PanoOperation::CelesteOperation::GetInternalCommand(), CPImageCtrl::GetMagBitmap(), HuginBase::SmallRemappedImageCache::getRemapped(), HuginBase::Nona::FileRemapper< ImageType, AlphaType >::getRemapped(), imageCacheEntry2wxImage(), deghosting::Khan< PixelType >::importRGBImage(), loadAndConvertImage(), LoadAndMergeImages(), LoadGrayImageAndConvert(), LoadGrayImageAndFindLines(), LoadImageAndConvert(), LoadImageAndFindLines(), HuginBase::ImageCache::loadImageSafely(), loadImagesPyr(), main(), main2(), MergeImages(), mergeWeightedAverage(), vigra_ext::poisson::Multigrid(), CPEditorPanel::OnCelesteButton(), PointFineTune(), PointFineTuneProjectionAware(), PointFineTuneRotSearch(), PoissonBlend(), celeste::prepareCelesteImage(), deghosting::Khan< PixelType >::preprocessImage(), PrintImageInfo(), processImg(), PanoCommand::wxAddCtrlPointGridCmd::processPanorama(), reduceToNextLevelOld(), HuginBase::Nona::RemappedPanoImage< RemapImage, AlphaImage >::remapImage(), RemapImage(), ResaveImageFill(), HuginLines::resize_image(), vigra_ext::detail::ResizeImage(), vigra_ext::poisson::detail::RestrictErrorToNextLevel(), OptimizePhotometricPanel::runOptimizer(), HuginBase::PointSampler::sampleAndExtractPoints(), HuginBase::Nona::detail::saveRemapped(), HuginBase::Nona::MultiImageRemapper< ImageType, AlphaImageType >::saveRemapped(), LensCalImageCtrl::SetEdgeImage(), StackImagesAndMask(), HuginBase::Nona::ReduceStitcher< ImageType, AlphaType >::stitch(), HuginBase::Nona::SimpleStitcher< ImageType, AlphaType >::stitch(), threshold(), PreviewPanel::updatePreview(), and weightedAverageOfImageFiles().

template<class Image , class Alpha >
vigra::triple<typename ROIImage<Image,Alpha>::image_traverser, typename ROIImage<Image,Alpha>::image_traverser, typename ROIImage<Image,Alpha>::ImageAccessor> vigra_ext::destImageRange ( ROIImage< Image, Alpha > &  img)
inline
template<class Image , class Alpha >
vigra::pair<typename ROIImage<Image,Alpha>::mask_traverser, typename ROIImage<Image,Alpha>::MaskAccessor> vigra_ext::destMask ( ROIImage< Image, Alpha > &  img)
inline
template<class Image , class Alpha >
vigra::triple<typename ROIImage<Image,Alpha>::mask_traverser, typename ROIImage<Image,Alpha>::mask_traverser, typename ROIImage<Image,Alpha>::MaskAccessor> vigra_ext::destMaskRange ( ROIImage< Image, Alpha > &  img)
inline
template<class T >
bool vigra_ext::ditheringNeeded ( T const &  )

Definition at line 219 of file VignettingCorrection.h.

References isTrueType().

template<class LUT >
void vigra_ext::enforceMonotonicity ( LUT &  lut)
template<class ImageIter , class ImageAcc >
void vigra_ext::findInterestPointsPartial ( vigra::triple< ImageIter, ImageIter, ImageAcc >  img,
const vigra::Rect2D &  rect,
double  scale,
unsigned  nPoints,
std::multimap< double, vigra::Diff2D > &  points 
)
template<class T >
void vigra_ext::FitPolynom ( x,
xend,
y,
double &  a,
double &  b,
double &  c 
)

fit a second order polynom to a data set

y = a + b*x + c*x^2

uses a least mean square fit, give at least 3 points.

calculate quality of fit

Definition at line 55 of file FitPolynom.h.

References A(), Matrix3::Determinant(), Matrix3::m, and X.

Referenced by subpixelMaxima().

template<class ImgIter , class ImgAccessor , class FFIter , class FFAccessor , class DestIter , class DestAccessor >
void vigra_ext::flatfieldVigCorrection ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< FFIter, FFAccessor >  ffImg,
vigra::pair< DestIter, DestAccessor >  destImg,
double  gamma,
double  gammaMaxVal,
bool  division,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  a,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  b,
bool  dither 
)

Definition at line 416 of file VignettingCorrection.h.

References combineTwoImagesDither().

Referenced by HuginBase::Nona::applyFlatfield().

template<class V >
V vigra_ext::getMaxComponent ( vigra::RGBValue< V > const &  v)
inline
template<class V >
V vigra_ext::getMaxComponent ( v)
inline

get the maximum component of a vector (also works for single pixel types...)

Definition at line 277 of file utils.h.

double vigra_ext::getMaxValForPixelType ( const std::string &  v)
inline
template<class V >
V vigra_ext::getMinComponent ( vigra::RGBValue< V > const &  v)
inline

get the maximum component of a vector (also works for single pixel types...)

Definition at line 286 of file utils.h.

References celeste::min().

Referenced by applyExposureClipMask(), and vigra_ext::FindComponentsMinMax< VALUETYPE >::operator()().

template<class V >
V vigra_ext::getMinComponent ( v)
inline

get the maximum component of a vector (also works for single pixel types...)

Definition at line 295 of file utils.h.

template<class ImgIter , class ImgAcc , class MaskIter , class MaskAcc , class Functor >
void vigra_ext::inspectImagesIf ( std::vector< ImgIter >  imgs,
std::vector< MaskIter >  masks,
std::vector< vigra::Rect2D >  rois,
Functor &  f 
)

function to inspect a variable number of images.

They do not need to overlap, and will be only evaluated inside their ROI

Definition at line 399 of file ROIImage.h.

References contains().

bool vigra_ext::isTrueType ( vigra::VigraFalseType  )
inline

Definition at line 210 of file VignettingCorrection.h.

Referenced by ditheringNeeded().

bool vigra_ext::isTrueType ( vigra::VigraTrueType  )
inline

Definition at line 214 of file VignettingCorrection.h.

template<class T , unsigned int RIDX, unsigned int GIDX, unsigned int BIDX>
vigra::RGBValue<T, RIDX, GIDX, BIDX> vigra_ext::log ( vigra::RGBValue< T, RIDX, GIDX, BIDX > const &  v)
inline
template<class V , int SIZE, class D1 , class D2 >
vigra::TinyVector<V, SIZE> vigra_ext::log ( vigra::TinyVector< V, SIZE > const &  v,
double  e 
)
inline

Apply log() function to each vector component.

Definition at line 256 of file utils.h.

References log().

template<class T , unsigned int RIDX, unsigned int GIDX, unsigned int BIDX>
vigra::RGBValue<T, RIDX, GIDX, BIDX> vigra_ext::log10 ( vigra::RGBValue< T, RIDX, GIDX, BIDX > const &  v)
inline

component-wise logarithm

Definition at line 218 of file utils.h.

Referenced by vigra_ext::ApplyLogFunctor::ApplyLogFunctor(), and vigra_ext::ApplyLogFunctor::operator()().

vigra_ext::LUT_TRAITS ( unsigned  char,
,
UCHAR_MAX   
)
vigra_ext::LUT_TRAITS ( signed  char,
SCHAR_MIN  ,
SCHAR_MAX   
)
vigra_ext::LUT_TRAITS ( unsigned  short,
,
USHRT_MAX   
)
vigra_ext::LUT_TRAITS ( signed  short,
SHRT_MIN  ,
SHRT_MAX   
)
vigra_ext::LUT_TRAITS ( unsigned  int,
,
UINT_MAX   
)
vigra_ext::LUT_TRAITS ( signed  int,
INT_MIN  ,
INT_MAX   
)
vigra_ext::LUT_TRAITS ( float  ,
0.  0f,
1.  0f 
)
vigra_ext::LUT_TRAITS ( double  ,
0.  0,
1.  0 
)
template<class ImageType , class MaskType >
void vigra_ext::MergeImages ( ImageType image1,
MaskType &  mask1,
const ImageType image2,
const MaskType &  mask2,
const vigra::Diff2D  offset,
const bool  wrap,
const bool  hardSeam 
)
template<class T >
vigra::NumericTraits<T>::RealPromote vigra_ext::normalizeValue ( v,
vigra::VigraTrueType   
)

normalize a pixel to 0..1 Only has an effect on integer pixel types

Definition at line 551 of file utils.h.

References celeste::max().

template<class T >
vigra::NumericTraits<T>::RealPromote vigra_ext::normalizeValue ( v,
vigra::VigraFalseType   
)

Definition at line 558 of file utils.h.

template<class V1 , unsigned int R, unsigned int G, unsigned int B, class V2 >
vigra::PromoteTraits<vigra::RGBValue<V1, R, G, B>, V2 >::Promote vigra_ext::operator+ ( vigra::RGBValue< V1, R, G, B > const &  r1,
V2 const &  r2 
)
inline

add a scalar to all components

Definition at line 229 of file utils.h.

template<class V1 , unsigned int R, unsigned int G, unsigned int B, class V2 >
vigra::RGBValue<V1, R, G, B>& vigra_ext::operator+= ( vigra::RGBValue< V1, R, G, B > &  l,
V2 const &  r 
)
inline

add a scalar to all components

Definition at line 197 of file utils.h.

template<class IMAGET , class ACCESSORT , class IMAGES , class ACCESSORS >
CorrelationResult vigra_ext::PointFineTune ( const IMAGET &  templImg,
ACCESSORT  access_t,
vigra::Diff2D  templPos,
int  templSize,
const IMAGES &  searchImg,
ACCESSORS  access_s,
vigra::Diff2D  searchPos,
int  sWidth 
)

fine tune a point with normalized cross correlation

takes a patch of templSize by templSize from templImg images at tmplPos and searches it on the searchImg, at searchPos, in a neighbourhood of sWidth by sWidth.

The result in returned in tunedPos

Returns
correlation value

Definition at line 504 of file Correlation.h.

References vigra::omp::copyImage(), correlateImage(), correlateImageFast(), DEBUG_DEBUG, destImage(), vigra_ext::CorrelationResult::maxi, vigra_ext::CorrelationResult::maxpos, hugin_utils::simpleClipPoint(), srcImage(), srcImageRange(), subpixelMaxima(), hugin_utils::TDiff2D< T >::toDiff2D(), hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by createCtrlPoints(), detail::FineTunePoint(), GLPreviewFrame::OnCreateCP(), and PointFineTuneProjectionAware().

template<class IMAGET , class IMAGES >
CorrelationResult vigra_ext::PointFineTuneRotSearch ( const IMAGET &  templImg,
vigra::Diff2D  templPos,
int  templSize,
const IMAGES &  searchImg,
vigra::Diff2D  searchPos,
int  sWidth,
double  startAngle,
double  stopAngle,
int  angleSteps 
)

fine tune a point with normalized cross correlation, searches x,y and phi (rotation around z)

takes a patch of templSize by templSize from templImg images at tmplPos and searches it on the searchImg, at searchPos, in a neighbourhood of sWidth by sWidth.

The result in returned in tunedPos

Returns
correlation value

Definition at line 631 of file Correlation.h.

References vigra::omp::copyImage(), correlateImage(), correlateImageFast(), DEBUG_DEBUG, DEBUG_ERROR, DEBUG_TRACE, destImage(), destImageRange(), INTERP_CUBIC, M_PI, vigra_ext::CorrelationResult::maxi, vigra_ext::CorrelationResult::maxpos, RAD_TO_DEG, srcImage(), srcImageRange(), subpixelMaxima(), and transformImage().

Referenced by PointFineTuneProjectionAware().

template<class ImageType , class MaskType >
void vigra_ext::PoissonBlend ( ImageType image1,
const ImageType image2,
const MaskType &  mask2,
const vigra::BImage &  labels,
const vigra::Point2D &  offsetPoint,
const bool  doWrap 
)
float vigra_ext::pow ( float  a,
double  b 
)
inline
template<class T , unsigned int R, unsigned int G, unsigned int B>
vigra::RGBValue<T, R, G, B> vigra_ext::pow ( vigra::RGBValue< T, R, G, B > const &  v,
double  e 
)
inline

component-wise absolute value

Definition at line 189 of file utils.h.

References pow().

template<class V , int SIZE, class D1 , class D2 >
vigra::TinyVector<V, SIZE> vigra_ext::pow ( vigra::TinyVector< V, SIZE > const &  v,
double  e 
)
inline

Apply pow() function to each vector component.

Definition at line 243 of file utils.h.

References pow().

template<class ImgIter , class ImgAccessor , class DestIter , class DestAccessor >
void vigra_ext::radialVigCorrection ( vigra::triple< ImgIter, ImgIter, ImgAccessor >  srcImg,
vigra::pair< DestIter, DestAccessor >  destImg,
double  gamma,
double  gammaMaxVal,
const std::vector< double > &  radCoeff,
hugin_utils::FDiff2D  center,
bool  division,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  a,
typename vigra::NumericTraits< typename ImgAccessor::value_type >::RealPromote  b,
bool  dither 
)
template<class ImageIn , class Image >
void vigra_ext::reduceNTimes ( ImageIn &  in,
Image &  out,
int  n 
)
template<class Image , class ImageMask >
void vigra_ext::reduceNTimes ( Image &  in,
ImageMask &  inMask,
Image &  out,
ImageMask &  outMask,
int  n 
)

Definition at line 80 of file Pyramid.h.

References destImageRange(), vigra_ext::EMoR::h, srcImage(), and srcImageRange().

template<class ROIIMG , class DestIter , class DestAccessor , class MaskIter , class MaskAccessor , class FUNCTOR >
void vigra_ext::reduceROIImages ( std::vector< ROIIMG * >  images,
vigra::triple< DestIter, DestIter, DestAccessor >  dest,
vigra::pair< MaskIter, MaskAccessor >  destMask,
FUNCTOR &  reduce 
)

algorithm to reduce a set of ROI images

Definition at line 465 of file ROIImage.h.

References celeste::max(), and enblend::reduce().

template<class ImageIn , class ImageOut >
void vigra_ext::reduceToNextLevel ( ImageIn &  in,
ImageOut &  out 
)
template<class ImageIn , class ImageInMask , class ImageOut , class ImageOutMask >
void vigra_ext::reduceToNextLevel ( ImageIn &  in,
ImageInMask &  inMask,
ImageOut &  out,
ImageOutMask &  outMask 
)

Definition at line 151 of file Pyramid.h.

References destImageRange(), vigra_ext::EMoR::h, srcImage(), and srcImageRange().

template<class Image >
void vigra_ext::reduceToNextLevelOld ( Image &  in,
Image &  out 
)

Gaussian reduction to next pyramid level.

out is rescaled to the correct size.

Definition at line 178 of file Pyramid.h.

References DEBUG_TRACE, destImage(), destImageRange(), srcImageRange(), and W.

template<class VEC , class VEC2 >
void vigra_ext::resizeLUT ( const VEC &  iLUT,
VEC2 &  oLUT 
)
IMPEX void vigra_ext::SetGPUDebugMessages ( const bool  doPrint)

Definition at line 314 of file ImageTransformsGPU.cpp.

References printDebug.

Referenced by main().

static double vigra_ext::sinc ( double  x)
static

Definition at line 50 of file Interpolators.h.

References M_PI.

Referenced by vigra_ext::interp_sinc< size_ >::calc_coeff().

template<typename Image , typename Mask >
vigra::pair<typename ROIImage<Image, Mask>::image_const_traverser, typename ROIImage<Image, Mask>::ImageConstAccessor> vigra_ext::srcImage ( const ROIImage< Image, Mask > &  img)
inline
template<typename Image , typename Mask >
vigra::triple<typename ROIImage<Image, Mask>::image_const_traverser, typename ROIImage<Image, Mask>::image_const_traverser, typename ROIImage<Image, Mask>::ImageConstAccessor> vigra_ext::srcImageRange ( const ROIImage< Image, Mask > &  img)
inline

helper function for ROIImages

Definition at line 287 of file ROIImage.h.

References vigra_ext::ROIImage< Image, Mask >::accessor(), vigra_ext::ROIImage< Image, Mask >::lowerRight(), and vigra_ext::ROIImage< Image, Mask >::upperLeft().

Referenced by HuginLines::_getVerticalLines(), PanoDetector::AnalyzeImage(), vigra_ext::poisson::BuildSeamPyramid(), PreviewColorPickerTool::CalcCorrectionForImage(), convertGrayToUInt8(), deghosting::Khan< PixelType >::convertImage(), HuginBase::convertTo8Bit(), ConvertTo8Bit(), celeste::convertToUInt16(), convertToUInt8(), HuginBase::Nona::CopyImageNewSize(), correctImage(), correctRGB(), createCtrlPoints(), CreateMissingImages(), deghosting::Khan< PixelType >::createWeightMasks(), TextureManager::TextureInfo::DefineLevels(), HuginLines::detectEdges(), TestCode::drawRansacMatches(), HuginBase::estimateImageAlpha(), vigra_ext::poisson::detail::FindEdgesForPoisson(), findInterestPointsPartial(), detail::FindInterestPointsPartial(), LensCalImageCtrl::GenerateRemappedImage(), celeste::getCelesteMask(), PanoOperation::CelesteOperation::GetInternalCommand(), CPImageCtrl::GetMagBitmap(), HuginBase::SmallRemappedImageCache::getRemapped(), HuginBase::Nona::FileRemapper< ImageType, AlphaType >::getRemapped(), HandleDownscaleImage(), imageCacheEntry2wxImage(), deghosting::Khan< PixelType >::importRGBImage(), InspectGrayscaleImage(), InspectRGBImage(), HuginBase::ImageCache::loadImageSafely(), loadImagesPyr(), main(), MergeImages(), vigra_ext::poisson::Multigrid(), CPEditorPanel::OnCelesteButton(), GLPreviewFrame::OnCreateCP(), HuginBase::Nona::StackingBlender::operator()(), PointFineTune(), PointFineTuneProjectionAware(), PointFineTuneRotSearch(), PoissonBlend(), celeste::prepareCelesteImage(), deghosting::Khan< PixelType >::preprocessImage(), PanoCommand::wxAddCtrlPointGridCmd::processPanorama(), reduceNTimes(), reduceToNextLevel(), reduceToNextLevelOld(), HuginBase::Nona::remapImage(), RemapImage(), ResaveImageFill(), MaskImageCtrl::rescaleImage(), vigra_ext::detail::ResizeImage(), vigra_ext::poisson::detail::RestrictErrorToNextLevel(), OptimizePhotometricPanel::runOptimizer(), HuginBase::PointSampler::sampleAndExtractPoints(), SaveImage(), HuginBase::Nona::detail::saveRemapped(), HuginBase::Nona::MultiImageRemapper< ImageType, AlphaImageType >::saveRemapped(), HuginBase::Nona::TiffMultiLayerRemapper< ImageType, AlphaImageType >::saveRemapped(), LensCalImageCtrl::SetEdgeImage(), StackImagesAndMask(), HuginBase::Nona::WeightedStitcher< ImageType, AlphaType >::stitch(), HuginBase::Nona::ReduceStitcher< ImageType, AlphaType >::stitch(), HuginBase::Nona::SimpleStitcher< ImageType, AlphaType >::stitch(), threshold(), PreviewPanel::updatePreview(), and weightedAverageOfImageFiles().

template<class Image , class Alpha >
vigra::pair<typename ROIImage<Image,Alpha>::mask_const_traverser, typename ROIImage<Image,Alpha>::MaskConstAccessor> vigra_ext::srcMask ( const ROIImage< Image, Alpha > &  img)
inline
template<class Image , class Alpha >
vigra::triple<typename ROIImage<Image,Alpha>::mask_const_traverser, typename ROIImage<Image,Alpha>::mask_const_traverser, typename ROIImage<Image,Alpha>::MaskConstAccessor> vigra_ext::srcMaskRange ( const ROIImage< Image, Alpha > &  img)
inline
template<class Iterator , class Accessor >
CorrelationResult vigra_ext::subpixelMaxima ( vigra::triple< Iterator, Iterator, Accessor >  img,
vigra::Diff2D  max 
)

find the subpixel maxima by fitting 2nd order polynoms to x and y.

this estimates the x and y values separately. Don't know if this is the best way, but it works well

Definition at line 373 of file Correlation.h.

References vigra_ext::CorrelationResult::curv, DEBUG_DEBUG, DEBUG_NOTICE, FitPolynom(), vigra_ext::CorrelationResult::maxi, vigra_ext::CorrelationResult::maxpos, hugin_utils::TDiff2D< T >::x, and hugin_utils::TDiff2D< T >::y.

Referenced by PointFineTune(), and PointFineTuneRotSearch().

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void vigra_ext::transformImage ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
vigra::Diff2D  destUL,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
bool  warparound,
Interpolator  interpol,
AppBase::ProgressDisplay progress,
bool  singleThreaded = false 
)

Transform an image into the panorama.

It can be used for partial transformations as well, if the boundig box of a remapped image is known.

Usage: create an output image that should contain the remapped src image. if dest doesn't cover the whole output panorama, use destUL to specify the offset of dest from the output panorama.

Parameters
srcsource image
dest(partial) panorama image. the image size needed to hold the complete remapped image can be calculated using calcBorderPoints().
destULupper left point of dest in final panorama. set to (0,0) if dest has the same size as the complete panorama.
transformfunction used to remap the picture.
centerDistimage, with the same size as dest, that will contain the distance of the corrosponding pixel from the center of src. This is useful to calculate nice seams. Use a null image if this information is not needed.
interpolInterpolation algorithm that should be used.

Definition at line 237 of file ImageTransforms.h.

References DEBUG_DEBUG, INTERP_BILINEAR, INTERP_CUBIC, INTERP_NEAREST_NEIGHBOUR, INTERP_SINC_1024, INTERP_SINC_256, INTERP_SPLINE_16, INTERP_SPLINE_36, INTERP_SPLINE_64, and transformImageIntern().

Referenced by PanoDetector::AnalyzeImage(), applyBrightnessCorrection(), applyGammaAndBrightCorrection(), applyGammaCorrection(), applyMapping(), convertGrayToUInt8(), deghosting::Khan< PixelType >::convertImage(), celeste::convertToUInt16(), convertToUInt8(), correctImage(), createCtrlPoints(), deghosting::Khan< PixelType >::createWeightMasks(), CPImageCtrl::GetMagBitmap(), HuginBase::Nona::FileRemapper< ImageType, AlphaType >::getRemapped(), HuginBase::ImageCache::importAndConvertAlphaImage(), HuginBase::ImageCache::importAndConvertImage(), deghosting::Khan< PixelType >::importRGBImage(), loadImagesPyr(), main(), PointFineTuneProjectionAware(), PointFineTuneRotSearch(), celeste::prepareCelesteImage(), deghosting::Khan< PixelType >::preprocessImage(), PanoCommand::wxAddCtrlPointGridCmd::processPanorama(), HuginBase::Nona::RemappedPanoImage< RemapImage, AlphaImage >::remapImage(), RemapImage(), LensCalImageCtrl::SetEdgeImage(), threshold(), vigra::omp::transformImage(), and weightedAverageOfImageFiles().

template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void vigra_ext::transformImageAlpha ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
std::pair< SrcAlphaIterator, SrcAlphaAccessor >  srcAlpha,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
vigra::Diff2D  destUL,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
bool  warparound,
Interpolator  interpol,
AppBase::ProgressDisplay progress,
bool  singleThreaded = false 
)
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void vigra_ext::transformImageAlphaGPU ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
std::pair< SrcAlphaIterator, SrcAlphaAccessor >  srcAlpha,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
vigra::Diff2D  destUL,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
bool  warparound,
Interpolator  interpol,
AppBase::ProgressDisplay progress 
)
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void vigra_ext::transformImageAlphaGPUIntern ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
std::pair< SrcAlphaIterator, SrcAlphaAccessor >  srcAlpha,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
vigra::Diff2D  destUL,
Interpolator  interp,
bool  warparound,
AppBase::ProgressDisplay progress 
)
template<class SrcImageIterator , class SrcAccessor , class SrcAlphaIterator , class SrcAlphaAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void vigra_ext::transformImageAlphaIntern ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
std::pair< SrcAlphaIterator, SrcAlphaAccessor >  srcAlpha,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
vigra::Diff2D  destUL,
Interpolator  interp,
bool  warparound,
AppBase::ProgressDisplay progress,
bool  singleThreaded 
)

transform input images with alpha channel

Definition at line 155 of file ImageTransforms.h.

References zeroNegative().

Referenced by transformImageAlpha().

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class AlphaImageIterator , class AlphaAccessor , class TRANSFORM , class PixelTransform >
void vigra_ext::transformImageGPU ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
vigra::Diff2D  destUL,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
bool  warparound,
Interpolator  interpol,
AppBase::ProgressDisplay progress 
)

Transform an image into the panorama.

Uses the GPU for processing.

It can be used for partial transformations as well, if the boundig box of a remapped image is known.

Usage: create an output image that should contain the remapped src image. if dest doesn't cover the whole output panorama, use destUL to specify the offset of dest from the output panorama.

Parameters
srcsource image
dest(partial) panorama image. the image size needed to hold the complete remapped image can be calculated using calcBorderPoints().
destULupper left point of dest in final panorama. set to (0,0) if dest has the same size as the complete panorama.
transformfunction used to remap the picture.
centerDistimage, with the same size as dest, that will contain the distance of the corrosponding pixel from the center of src. This is useful to calculate nice seams. Use a null image if this information is not needed.
interpolInterpolation algorithm that should be used.

Definition at line 471 of file ImageTransformsGPU.h.

References DEBUG_DEBUG, INTERP_BILINEAR, INTERP_CUBIC, INTERP_NEAREST_NEIGHBOUR, INTERP_SINC_1024, INTERP_SINC_256, INTERP_SPLINE_16, INTERP_SPLINE_36, INTERP_SPLINE_64, and transformImageGPUIntern().

Referenced by HuginBase::Nona::RemappedPanoImage< RemapImage, AlphaImage >::remapImage().

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void vigra_ext::transformImageGPUIntern ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
vigra::Diff2D  destUL,
Interpolator  interp,
bool  warparound,
AppBase::ProgressDisplay progress 
)

Transform an image into the panorama.

Uses the GPU for processing.

It can be used for partial transformations as well, if the bounding box of a remapped image is known.

Usage: create an output image that should contain the remapped src image. if dest doesn't cover the whole output panorama, use destUL to specify the offset of dest from the output panorama.

Parameters
srcsource image
dest(partial) panorama image. the image size needed to hold the complete remapped image can be calculated using calcBorderPoints().
destULupper left point of dest in final panorama. set to (0,0) if dest has the same size as the complete panorama.
transformfunction used to remap the picture.
centerDistimage, with the same size as dest, that will contain the distance of the corrosponding pixel from the center of src. This is useful to calculate nice seams. Use a null image if this information is not needed.
interpInterpolator class (calculates weights for interpolation)

Definition at line 176 of file ImageTransformsGPU.h.

References vigra_ext::ImageInterpolator< SrcImageIterator, SrcAccessor, INTERPOLATOR >::emitGLSL(), transformImageGPUIntern(), and XGL_BYTE.

bool IMPEX vigra_ext::transformImageGPUIntern ( const std::string &  coordXformGLSL,
const std::string &  interpolatorGLSL,
const int  interpolatorSize,
const std::string &  photometricGLSL,
const vector< double > &  invLut,
const vector< double > &  destLut,
const vigra::Diff2D  srcSize,
const void *const  srcBuffer,
const int  srcGLInternalFormat,
const int  srcGLTransferFormat,
const int  srcGLFormat,
const int  srcGLType,
const void *const  srcAlphaBuffer,
const int  srcAlphaGLType,
const vigra::Diff2D  destUL,
const vigra::Diff2D  destSize,
void *const  destBuffer,
const int  destGLInternalFormat,
const int  destGLTransferFormat,
const int  destGLFormat,
const int  destGLType,
void *const  destAlphaBuffer,
const int  destAlphaGLType,
const bool  warparound 
)
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class TRANSFORM , class PixelTransform , class AlphaImageIterator , class AlphaAccessor , class Interpolator >
void vigra_ext::transformImageIntern ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::triple< DestImageIterator, DestImageIterator, DestAccessor >  dest,
std::pair< AlphaImageIterator, AlphaAccessor >  alpha,
TRANSFORM &  transform,
PixelTransform &  pixelTransform,
vigra::Diff2D  destUL,
Interpolator  interp,
bool  warparound,
AppBase::ProgressDisplay progress,
bool  singleThreaded 
)

Transform an image into the panorama.

It can be used for partial transformations as well, if the bounding box of a remapped image is known.

Usage: create an output image that should contain the remapped src image. if dest doesn't cover the whole output panorama, use destUL to specify the offset of dest from the output panorama.

Parameters
srcsource image
dest(partial) panorama image. the image size needed to hold the complete remapped image can be calculated using calcBorderPoints().
destULupper left point of dest in final panorama. set to (0,0) if dest has the same size as the complete panorama.
transformfunction used to remap the picture.
centerDistimage, with the same size as dest, that will contain the distance of the corrosponding pixel from the center of src. This is useful to calculate nice seams. Use a null image if this information is not needed.
interpInterpolator class (calculates weights for interpolation)

Definition at line 96 of file ImageTransforms.h.

References zeroNegative().

Referenced by CPImageCtrl::GetMagBitmap(), and transformImage().

template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void vigra_ext::transformImageSpatial ( SrcImageIterator  src_upperleft,
SrcImageIterator  src_lowerright,
SrcAccessor  sa,
DestImageIterator  dest_upperleft,
DestAccessor  da,
Functor const &  f,
vigra::Diff2D  ul 
)
template<class SrcImageIterator , class SrcAccessor , class DestImageIterator , class DestAccessor , class Functor >
void vigra_ext::transformImageSpatial ( vigra::triple< SrcImageIterator, SrcImageIterator, SrcAccessor >  src,
vigra::pair< DestImageIterator, DestAccessor >  dest,
Functor const &  f,
vigra::Diff2D  ul 
)

Definition at line 748 of file utils.h.

References transformImageSpatial().

vigra_ext::VT_TRAITS ( vigra::UInt8  )
vigra_ext::VT_TRAITS ( vigra::Int16  )
vigra_ext::VT_TRAITS ( vigra::UInt16  )
vigra_ext::VT_TRAITS ( vigra::Int32  )
vigra_ext::VT_TRAITS ( vigra::UInt32  )
vigra_ext::VT_TRAITS ( float  )
vigra_ext::VT_TRAITS ( double  )
template<class T >
T vigra_ext::zeroNegative ( p)

Set negative elements of a pixel to zero.

Definition at line 45 of file ImageTransforms.h.

Referenced by transformImageAlphaIntern(), and transformImageIntern().

template<class T >
vigra::RGBValue<T> vigra_ext::zeroNegative ( vigra::RGBValue< T >  p)

Set negative elements of a pixel to zero.

Definition at line 56 of file ImageTransforms.h.

Variable Documentation

const double vigra_ext::AA = 0.4
static

Definition at line 170 of file Pyramid.h.

const double vigra_ext::W[] = {0.25 - AA / 2.0, 0.25, AA, 0.25, 0.25 - AA / 2.0}
static

Definition at line 171 of file Pyramid.h.

Referenced by reduceToNextLevelOld().