[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

HuginBase::Nona Namespace Reference


Classes

class  HuginBase::Nona::SingleImageRemapper< ImageType, AlphaType >
 functor to create a remapped image More...
class  HuginBase::Nona::FileRemapper< ImageType, AlphaType >
 functor to create a remapped image, loads image from disk More...
class  HuginBase::Nona::RemappedPanoImage< RemapImage, AlphaImage >
 struct to hold a image state for stitching More...
struct  HuginBase::Nona::_FuncParams
 Parameters for transformation calls Can be just one double, two double, 4 double, a matrix, matrix and a double. More...
struct  HuginBase::Nona::_fDesc
 Function descriptor to be executed by exec_function. More...
class  HuginBase::Nona::SpaceTransform
class  HuginBase::Nona::Stitcher< ImageType, AlphaType >
 implements a stitching algorithm More...
class  HuginBase::Nona::MultiImageRemapper< ImageType, AlphaType >
 remap a set of images, and store the individual remapped files. More...
class  HuginBase::Nona::TiffMultiLayerRemapper< ImageType, AlphaImageType >
 stitch multilayer More...
struct  HuginBase::Nona::CalcMaskUnion
 functor to calculate the union of two images. More...
class  HuginBase::Nona::WeightedStitcher< ImageType, AlphaType >
struct  HuginBase::Nona::ReduceToDifferenceFunctor< VALUETYPE >
 Difference reduce functor. More...
class  HuginBase::Nona::ReduceStitcher< ImageType, AlphaType >
 create a panorama using the reduce operation on all overlapping pixels. More...
class  HuginBase::Nona::SimpleStitcher< ImageType, AlphaType >
 A stitcher without seaming, just copies the images over each other. More...
struct  HuginBase::Nona::StackingBlender
 blend images, by simply stacking them, without soft blending or boundary calculation More...
struct  HuginBase::Nona::SeamBlender
 seam blender. More...
struct  HuginBase::Nona::DifferenceBlender
 blend by difference More...

Typedefs

typedef void(* trfn )(double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 Transformation function type.
typedef HuginBase::Nona::_fDesc fDescription
 Function descriptor to be executed by exec_function.
typedef std::vector< std::pair<
float, unsigned int > > 
AlphaVector

Functions

template<class FFType, class SrcIter, class SrcAccessor, class DestIter, class DestAccessor>
void applyFlatfield (vigra::triple< SrcIter, SrcIter, SrcAccessor > srcImg, vigra::pair< DestIter, DestAccessor > destImg, vigra::ImageImportInfo &ffInfo, double gamma, double gammaMaxVal, bool division, typename vigra::NumericTraits< typename SrcAccessor::value_type >::RealPromote a, typename vigra::NumericTraits< typename SrcAccessor::value_type >::RealPromote b, bool dither)
 load a flatfield image and apply the correction
template<class TRANSFORM>
void estimateImageRect (const SrcPanoImage &src, const PanoramaOptions &dest, TRANSFORM &transf, vigra::Rect2D &imgRect)
 calculate the outline of the image
template<class TRANSFORM>
void estimateImageAlpha (const SrcPanoImage &src, const PanoramaOptions &dest, TRANSFORM &transf, vigra::Rect2D &imgRect, vigra::BImage &alpha, double &scale)
template<class SrcImgType, class FlatImgType, class DestImgType, class MaskImgType>
void remapImage (SrcImgType &srcImg, const MaskImgType &srcAlpha, const FlatImgType &srcFlat, const SrcPanoImage &src, const PanoramaOptions &dest, vigra::Rect2D outputRect, RemappedPanoImage< DestImgType, MaskImgType > &remapped, AppBase::MultiProgressDisplay &progress)
 remap a single image
void rotate_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void inv_radial (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void resize (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void horiz (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void vert (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void radial (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void persp_sphere (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void persp_rect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void rect_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void pano_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void erect_pano (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void transpano_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void erect_transpano (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void sphere_tp_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void rect_sphere_tp (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void sphere_tp_rect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void sphere_tp_pano (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void pano_sphere_tp (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void erect_rect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void erect_sphere_tp (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
void mercator_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from erect to mercator
void erect_mercator (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from mercator to erect
void transmercator_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from erect to transverse mercator
void erect_transmercator (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from erect to transverse mercator
void sinusoidal_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from erect to sinusoidal
void erect_sinusoidal (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from sinusoidal to erect
void stereographic_erect (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from erect to stereographic
void erect_stereographic (double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 convert from stereographic to erect
Matrix3 SetMatrix (double a, double b, double c, int cl)
double estScaleFactorForFullFrame (const SrcPanoImage &src)
 Calculate effective scaling factor for a given source image.
double estRadialScaleCrop (const vector< double > &coeff, int width, int height)
 Calculate effective scaling factor.
template<class VECTOR>
void combinePolynom4 (const VECTOR &p, const VECTOR &q, VECTOR &c)
 combine 4rd degree polynomials
template<class TRANSFORM>
void traceImageOutline (vigra::Size2D sz, TRANSFORM &transf, vigra::Rect2D &inside, vigra::Rect2D &boundingBox)
 Internal function to estimate the image scaling required to avoid black stripes at the image borders.
void estimateBlendingOrder (const PanoramaData &pano, UIntSet images, vector< unsigned int > &blendOrder)
 determine blending order (starting with image 0), and continue to stitch the image with the biggest overlap area with the real image..
void stitchPanorama (const PanoramaData &pano, const PanoramaOptions &opt, AppBase::MultiProgressDisplay &progress, const std::string &basename, const UIntSet &usedImgs)
 stitch a panorama
void estimateBlendingOrder (const PanoramaData &pano, UIntSet images, std::vector< unsigned int > &blendOrder)
 determine blending order (starting with image 0), and continue to stitch the image with the biggest overlap area with the real image..
void stitchPanoGray_8_16 (const PanoramaData &pano, const PanoramaOptions &opts, AppBase::MultiProgressDisplay &progress, const std::string &basename, const UIntSet &usedImgs, const char *pixelType)
void stitchPanoGray_32_float (const PanoramaData &pano, const PanoramaOptions &opts, AppBase::MultiProgressDisplay &progress, const std::string &basename, const UIntSet &usedImgs, const char *pixelType)
void stitchPanoRGB_8_16 (const PanoramaData &pano, const PanoramaOptions &opts, AppBase::MultiProgressDisplay &progress, const std::string &basename, const UIntSet &usedImgs, const char *pixelType)
void stitchPanoRGB_32_float (const PanoramaData &pano, const PanoramaOptions &opts, AppBase::MultiProgressDisplay &progress, const std::string &basename, const UIntSet &usedImgs, const char *pixelType)


Typedef Documentation

typedef std::vector<std::pair<float, unsigned int> > HuginBase::Nona::AlphaVector
 

typedef struct HuginBase::Nona::_fDesc HuginBase::Nona::fDescription
 

Function descriptor to be executed by exec_function.

typedef void(* HuginBase::Nona::trfn)(double x_dest, double y_dest, double *x_src, double *y_src, const _FuncParams &params)
 

Transformation function type.


Function Documentation

template<class FFType, class SrcIter, class SrcAccessor, class DestIter, class DestAccessor>
void HuginBase::Nona::applyFlatfield vigra::triple< SrcIter, SrcIter, SrcAccessor >  srcImg,
vigra::pair< DestIter, DestAccessor >  destImg,
vigra::ImageImportInfo &  ffInfo,
double  gamma,
double  gammaMaxVal,
bool  division,
typename vigra::NumericTraits< typename SrcAccessor::value_type >::RealPromote  a,
typename vigra::NumericTraits< typename SrcAccessor::value_type >::RealPromote  b,
bool  dither
 

load a flatfield image and apply the correction

template<class VECTOR>
void HuginBase::Nona::combinePolynom4 const VECTOR &  p,
const VECTOR &  q,
VECTOR &  c
 

combine 4rd degree polynomials

Computes new polynomial so that: c(x) ~= q(p(x)) c is also a 4rd degree polynomial, and the expansion is cut after x^4 constant term is assumed to be 0, and not included in p,q and c

void erect_mercator double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from mercator to erect

void erect_pano double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void erect_rect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void erect_sinusoidal double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from sinusoidal to erect

void erect_sphere_tp double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void erect_stereographic double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from stereographic to erect

void erect_transmercator double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from erect to transverse mercator

void erect_transpano double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void estimateBlendingOrder const PanoramaData &  pano,
UIntSet  images,
std::vector< unsigned int > &  blendOrder
 

determine blending order (starting with image 0), and continue to stitch the image with the biggest overlap area with the real image..

do everything on a low res version of the masks

void estimateBlendingOrder const PanoramaData &  pano,
UIntSet  images,
vector< unsigned int > &  blendOrder
 

determine blending order (starting with image 0), and continue to stitch the image with the biggest overlap area with the real image..

do everything on a low res version of the masks

template<class TRANSFORM>
void estimateImageAlpha const SrcPanoImage &  src,
const PanoramaOptions &  dest,
TRANSFORM &  transf,
vigra::Rect2D &  imgRect,
vigra::BImage &  alpha,
double scale
 

template<class TRANSFORM>
void estimateImageRect const SrcPanoImage &  src,
const PanoramaOptions &  dest,
TRANSFORM &  transf,
vigra::Rect2D &  imgRect
 

calculate the outline of the image

Parameters:
src description of source picture
dest description of output picture (panorama)
imgRect output: position of image in panorama.

double estRadialScaleCrop const std::vector< double > &  coeff,
int  width,
int  height
 

Calculate effective scaling factor.

This function returns the smalles scale factor that has been applied

If values < 1 are returned, black borders will occur. In that case the distortion correction parameters might need to be adjusted to avoid the black borders.

Parameters:
coef1 lens distortion coefficients, including d coefficient.
width image width
height image height
Returns:
smallest r_corr / r_orig in areas that might lead to black borders.

IMPEX double HuginBase::Nona::estScaleFactorForFullFrame const SrcPanoImage &  src  ) 
 

Calculate effective scaling factor for a given source image.

void horiz double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void inv_radial double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void mercator_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from erect to mercator

void pano_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void pano_sphere_tp double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void persp_rect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void persp_sphere double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void radial double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void rect_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void rect_sphere_tp double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

template<class SrcImgType, class FlatImgType, class DestImgType, class MaskImgType>
void HuginBase::Nona::remapImage SrcImgType &  srcImg,
const MaskImgType &  srcAlpha,
const FlatImgType &  srcFlat,
const SrcPanoImage &  src,
const PanoramaOptions &  dest,
vigra::Rect2D  outputROI,
RemappedPanoImage< DestImgType, MaskImgType > &  remapped,
AppBase::MultiProgressDisplay progress
 

remap a single image

void resize double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void rotate_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

Matrix3 SetMatrix double  a,
double  b,
double  c,
int  cl
 

void sinusoidal_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from erect to sinusoidal

void sphere_tp_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void sphere_tp_pano double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void sphere_tp_rect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void stereographic_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from erect to stereographic

void HuginBase::Nona::stitchPanoGray_32_float const PanoramaData &  pano,
const PanoramaOptions &  opts,
AppBase::MultiProgressDisplay progress,
const std::string &  basename,
const UIntSet usedImgs,
const char *  pixelType
 

void HuginBase::Nona::stitchPanoGray_8_16 const PanoramaData &  pano,
const PanoramaOptions &  opts,
AppBase::MultiProgressDisplay progress,
const std::string &  basename,
const UIntSet usedImgs,
const char *  pixelType
 

IMPEX void HuginBase::Nona::stitchPanorama const PanoramaData &  pano,
const PanoramaOptions &  opts,
AppBase::MultiProgressDisplay progress,
const std::string &  basename,
const UIntSet usedImgs
 

stitch a panorama

This function delegates all the work to the other functions

Due to the compile memory requirements of the instantiated templates ( > 1GB, for all pixel types), the instatiations are divided into 4 separate cpp files

void HuginBase::Nona::stitchPanoRGB_32_float const PanoramaData &  pano,
const PanoramaOptions &  opts,
AppBase::MultiProgressDisplay progress,
const std::string &  basename,
const UIntSet usedImgs,
const char *  pixelType
 

void HuginBase::Nona::stitchPanoRGB_8_16 const PanoramaData &  pano,
const PanoramaOptions &  opts,
AppBase::MultiProgressDisplay progress,
const std::string &  basename,
const UIntSet usedImgs,
const char *  pixelType
 

template<class TRANSFORM>
void HuginBase::Nona::traceImageOutline vigra::Size2D  sz,
TRANSFORM &  transf,
vigra::Rect2D &  inside,
vigra::Rect2D &  boundingBox
 

Internal function to estimate the image scaling required to avoid black stripes at the image borders.

void transmercator_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

convert from erect to transverse mercator

void transpano_erect double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 

void vert double  x_dest,
double  y_dest,
double x_src,
double y_src,
const _FuncParams &  params
 


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