PICCANTE  0.4
The hottest HDR imaging library!
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
pic Namespace Reference

Namespaces

 miniz
 
 pic
 

Classes

struct  _DeepImage
 
struct  _EXRAttribute
 
struct  _EXRImage
 
class  Array
 The Array class. More...
 
class  BBox
 The BBox class manages the creation of bounding boxes for images. More...
 
class  BinaryFeatureBruteForceMatcher
 The BinaryFeatureBruteForceMatcher class. More...
 
class  BinaryFeatureLSHMatcher
 The LSH class. More...
 
struct  BITMAPFILEHEADER
 The BITMAPFILEHEADER struct. More...
 
struct  BITMAPINFOHEADER
 The BITMAPINFOHEADER struct. More...
 
class  BRIEFDescriptor
 The BRIEFDescriptor class. More...
 
class  Buffer
 
class  BufferOpGL
 The BufferOpGL class. More...
 
class  BufferOpsGL
 The BufferOpsGL class. More...
 
class  CachedTable
 The CachedTable class. More...
 
class  CameraResponseFunction
 The CameraResponseFunction class. More...
 
class  CannyEdgeDetector
 The CannyEdgeDetector class. More...
 
class  ColorConv
 The ColorConv class. More...
 
class  ColorConvGL
 The ColorConvGL class. More...
 
class  ColorConvGLRGBtoHSL
 The ColorConvGLRGBtoHSL class. More...
 
class  ColorConvGLRGBtosRGB
 The ColorConvGLRGBtosRGB class. More...
 
class  ColorConvGLRGBtoXYZ
 The ColorConvGLRGBtoXYZ class. More...
 
class  ColorConvGLXYZtoCIELAB
 The ColorConvGLXYZtoCIELAB class. More...
 
class  ColorConvLMStoLAlphaBeta
 The ColorConvLMStoLAlphaBeta class. More...
 
class  ColorConvRGBtosRGB
 The ColorConvRGBtosRGB class. More...
 
class  ColorConvRGBtoXYZ
 The ColorConvRGBtoXYZ class. More...
 
struct  ColorConvTransform
 
class  ColorConvXYZtoCIELAB
 The ColorConvXYZtoCIELAB class. More...
 
class  ColorConvXYZtoCIELUV
 
class  ColorConvXYZtoHDRLAB
 The ColorConvXYZtoHDRLAB class. More...
 
class  ColorConvXYZtoLMS
 The ColorConvXYZtoLMS class. More...
 
class  ColorConvXYZtoLogLuv
 The ColorConvXYZtoLogLuv class. More...
 
class  ColorConvXYZtoxyY
 The ColorConvXYZtoxyY class. More...
 
class  ColorToGray
 
class  ColorToGrayGL
 The ColorToGrayGL class. More...
 
class  ConnectedComponents
 
class  DCT
 The DCT class provides a reference implementation for Discret Cosine Transform. More...
 
class  DisplayGL
 The DisplayGL class. More...
 
class  DivergenceOperator
 DivergenceOperator calculates divergence of the gradient of an image. More...
 
class  DragoTMO
 The DragoTMO class. More...
 
class  DragoTMOGL
 The DragoTMOGL class. More...
 
class  DurandTMO
 The DurandTMO class. More...
 
class  DurandTMOGL
 The DurandTMOGL class. More...
 
struct  EXIFInfo
 
class  ExposureFusion
 The ExposureFusion class. More...
 
class  ExposureFusionGL
 The ExposureFusionGL class. More...
 
class  FastCornerDetector
 
class  Fbo
 The Fbo class. More...
 
class  FeatureMatcher
 The FeatureMatcher class. More...
 
class  FerwerdaTMO
 The FerwerdaTMO class. More...
 
class  FileLister
 
class  FilerCLAHE
 The FilerCLAHE class. More...
 
class  Filter
 The Filter class. More...
 
class  FilterAbsoluteDifference
 The FilterAbsoluteDifference class. More...
 
class  FilterAnsiotropicDiffusion
 The FilterAnsiotropicDiffusion class. More...
 
class  FilterAssembleHDR
 The FilterAssembleHDR class. More...
 
class  FilterBackwardDifference
 The FilterBackwardDifference class. More...
 
class  FilterBilateral1D
 The FilterBilateral1D class. More...
 
class  FilterBilateral2DAS
 The FilterBilateral2DAS class. More...
 
class  FilterBilateral2DF
 The FilterBilateral2DF class. More...
 
class  FilterBilateral2DG
 The FilterBilateral2DG class. More...
 
class  FilterBilateral2DS
 The FilterBilateral2DS class. More...
 
class  FilterBilateral2DSP
 The FilterBilateral2DSP class. More...
 
class  FilterChannel
 The FilterChannel class. More...
 
class  FilterColorConv
 The FilterColorConv class. More...
 
class  FilterColorDistance
 The FilterColorDistance class. More...
 
class  FilterCombine
 The FilterCombine class. More...
 
class  FilterConv1D
 The FilterConv1D class. More...
 
class  FilterConv2D
 The FilterConv2D class. More...
 
class  FilterConv2DSP
 The FilterConv2DSP class. More...
 
class  FilterConvSparse
 The FilterConvSparse class. More...
 
class  FilterCrop
 The FilterCrop class. More...
 
class  FilterDCT1D
 The FilterDCT1D class. More...
 
class  FilterDCT2D
 The FilterDCT2D class. More...
 
class  FilterDeconvolution
 The FilterDeconvolution class. More...
 
class  FilterDeformGrid
 The FilterDeformGrid class. More...
 
class  FilterDemosaic
 The FilterDemosaic class. More...
 
class  FilterDiffGauss
 The FilterDiffGauss class. More...
 
class  FilterDiffGauss1D
 The FilterDiffGauss1D class. More...
 
class  FilterDiffGaussOpt
 The FilterDiffGaussOpt class. More...
 
class  FilterDisparity
 The FilterDisparity class. More...
 
class  FilterDivergence
 The FilterDivergence class. More...
 
class  FilterDownPP
 The FilterDownPP class. More...
 
class  FilterDownSampler2D
 The FilterDownSampler2D class. More...
 
class  FilterDragoTMO
 The FilterDragoTMO class. More...
 
class  FilterExposureFusionWeights
 The FilterExposureFusionWeights class. More...
 
struct  FilterFData
 
class  FilterGaussian1D
 The FilterGaussian1D class. More...
 
class  FilterGaussian2D
 The FilterGaussian2D class. More...
 
class  FilterGaussian3D
 The FilterGaussian3D class. More...
 
class  FilterGL
 The FilterGL class. More...
 
class  FilterGL1D
 The FilterGL1D class. More...
 
class  FilterGLAnisotropicDiffusion
 The FilterGLAnisotropicDiffusion class. More...
 
class  FilterGLBilateral1D
 The FilterGLBilateral1D class. More...
 
class  FilterGLBilateral2DAS
 
class  FilterGLBilateral2DF
 The FilterGLBilateral2DF class provides an HW accelerated bilateral filter implementation without approximations. More...
 
class  FilterGLBilateral2DG
 The FilterGLBilateral2DG class. More...
 
class  FilterGLBilateral2DS
 The FilterGLBilateral2DS class. More...
 
class  FilterGLBilateral2DSE
 The FilterGLBilateral2DSE class. More...
 
class  FilterGLBilateral2DSP
 The FilterGLBilateral2DSP class provides an approximated 2D bilateral filter using two 1D bilateral filtes; i.e. using the separable approximation. More...
 
class  FilterGLBilateral3DS
 The FilterGLBilateral3DS class. More...
 
class  FilterGLBilateral3DSP
 The FilterGLBilateral3DSP class. More...
 
class  FilterGLBlend
 The FilterGLBlend class. More...
 
class  FilterGLChannel
 The FilterGLChannel class. More...
 
class  FilterGLColorConv
 The FilterGLColorConv class. More...
 
class  FilterGLConv1D
 The FilterGLConv1D class. More...
 
class  FilterGLConv2D
 The FilterGLConv2D class. More...
 
class  FilterGLDeformGrid
 The FilterGLDeformGrid class. More...
 
class  FilterGLDisp
 The FilterGLDisp class. More...
 
class  FilterGLDownPP
 The FilterGLDownPP class. More...
 
class  FilterGLDragoTMO
 The FilterGLDragoTMO class. More...
 
class  FilterGLDurandTMO
 The FilterGLDurandTMO class. More...
 
class  FilterGLExposureFusionWeights
 The FilterGLExposureFusionWeights class. More...
 
class  FilterGLFromStrokeToMask
 The FilterGLFromStrokeToMask class. More...
 
class  FilterGLGaussian1D
 
class  FilterGLGaussian2D
 The FilterGLGaussian2D class. More...
 
class  FilterGLGaussian3D
 
class  FilterGLGradient
 The FilterGLGradient class. More...
 
class  FilterGLGrowCut
 The FilterGLGrowCut class. More...
 
class  FilterGLHSLReplace
 The FilterGLHSLReplace class. More...
 
class  FilterGLIterative
 The FilterGLIterative class. More...
 
class  FilterGLLaplacian
 The FilterGLLaplacian class. More...
 
class  FilterGLLuminance
 The FilterGLLuminance class. More...
 
class  FilterGLMax
 The FilterGLMax class. More...
 
class  FilterGLMean
 The FilterGLMean class. More...
 
class  FilterGLMin
 The FilterGLMin class. More...
 
class  FilterGLNonLinear1D
 The FilterGLNonLinear1D class. More...
 
class  FilterGLNPasses
 The FilterGLNPasses class. More...
 
class  FilterGLOp
 
class  FilterGLReinhardSinglePass
 The FilterGLReinhardSinglePass class. More...
 
class  FilterGLRemapping
 The FilterGLRemapping class. More...
 
class  FilterGLRemoveNuked
 The FilterGLRemoveNuked class. More...
 
class  FilterGLSampler2D
 The FilterGLSampler2D class. More...
 
class  FilterGLSamplingMap
 The FilterGLSamplingMap class. More...
 
class  FilterGLScatter
 The FilterGLScatter class implement the bilateral grid approximation of the bilateral filter. More...
 
class  FilterGLSigmoidTMO
 The FilterGLSigmoidTMO class. More...
 
class  FilterGLSimpleTMO
 The FilterGLSimpleTMO class. More...
 
class  FilterGLSlicer
 The FilterGLSlicer class. More...
 
class  FilterGLUpPP
 The FilterGLUpPP class. More...
 
class  FilterGLWarp2D
 The FilterGLWarp2D class. More...
 
class  FilterGradient
 The FilterGradient class. More...
 
class  FilterGradientHarrisOPT
 The FilterGradientHarrisOPT class. More...
 
class  FilterGrowCut
 The FilterGrowCut class. More...
 
class  FilterGuided
 The FilterGuided class. More...
 
class  FilterGuidedAB
 The FilterGuidedAB class. More...
 
class  FilterIntegralImage
 The FilterIntegralImage class. More...
 
class  FilterIterative
 The FilterIterative class. More...
 
class  FilterKuwahara
 The FilterKuwahara class. More...
 
class  FilterLaplacian
 The FilterLaplacian class. More...
 
class  FilterLinearColorSpace
 The FilterLinearColorSpace class. More...
 
class  FilterLocalExtrema
 The FilterLocalExtrema class. More...
 
class  FilterLoG2D
 The FilterLoG2D class. More...
 
class  FilterLoG2DOpt
 The FilterLoG2DOpt class. More...
 
class  FilterLuminance
 The FilterLuminance class. More...
 
class  FilterLuminanceAdaptation
 The FilterLuminanceAdaptation class. More...
 
class  FilterMax
 The FilterMax class. More...
 
class  FilterMean
 The FilterMean class. More...
 
class  FilterMed
 The FilterMed class. More...
 
class  FilterMedVec
 The FilterMedVec class. More...
 
class  FilterMin
 The FilterMin class. More...
 
class  FilterMosaic
 The FilterMosaic class. More...
 
class  FilterNearestNeighbors
 The FilterNearestNeighbors class. More...
 
class  FilterNoiseEstimation
 The FilterNoiseEstimation class. More...
 
class  FilterNormal
 The FilterNormal class. More...
 
class  FilterNPasses
 The FilterNPasses class. More...
 
class  FilterNSWE
 The FilterNSWE class. More...
 
class  FilterRadialBasisFunction
 The FilterRadialBasisFunction class. More...
 
class  FilterReconstruct
 
class  FilterRemoveInfNaN
 The FilterRemoveInfNaN class. More...
 
class  FilterRemoveNuked
 The FilterRemoveNuked class. More...
 
class  FilterRotation
 The FilterRotation class. More...
 
class  FilterSampler1D
 The FilterSampler1D class. More...
 
class  FilterSampler2D
 The FilterSampler2D class. More...
 
class  FilterSampler2DAdd
 The FilterSampler2DAdd class. More...
 
class  FilterSampler2DSub
 The FilterSampler2DSub class. More...
 
class  FilterSampler3D
 The FilterSampler3D class. More...
 
class  FilterSamplingMap
 The FilterSamplingMap class. More...
 
class  FilterSigmoidTMO
 The FilterSigmoidTMO class. More...
 
class  FilterSimpleTMO
 The FilterSimpleTMO class. More...
 
class  FilterSSIM
 The FilterSSIM class. More...
 
class  FilterThreshold
 The FilterThreshold class. More...
 
class  FilterTMQI
 The FilterTMQI class. More...
 
class  FilterUpPP
 The FilterUpPP class. More...
 
class  FilterWarp2D
 The FilterWarp2D class. More...
 
class  FilterWhiteBalance
 The FilterWhiteBalance class. More...
 
class  FilterWLS
 
class  FilterZeroCrossing
 The FilterZeroCrossing class. More...
 
class  FloatFeatureBruteForceMatcher
 The FloatFeatureBruteForceMatcher class. More...
 
class  GeneralCornerDetector
 The GeneralCornerDetector class. More...
 
class  GrowCut
 
class  GrowCutGL
 
class  HarrisCornerDetector
 The HarrisCornerDetector class. More...
 
class  HashTableLSH
 The Hash class. More...
 
class  HDRMerger
 
class  Histogram
 The Histogram class is a class for creating, managing, loading, and saving histogram for an Image. More...
 
class  HistogramMatching
 
class  HybridTMO
 The HybridTMO class. More...
 
class  HybridTMOGL
 The HybridTMOGL class. More...
 
class  ICP2DTransform
 
class  Image
 The Image class stores an image as buffer of float. More...
 
class  ImageGL
 The ImageGL class. More...
 
class  ImageSampler
 The ImageSampler class. More...
 
class  ImageSamplerBicubic
 The ImageSamplerBicubic class. More...
 
class  ImageSamplerBilinear
 The ImageSamplerBilinear class. More...
 
class  ImageSamplerBSplines
 The ImageSamplerBSplines class. More...
 
class  ImageSamplerCatmullRom
 The ImageSamplerCatmullRom class. More...
 
class  ImageSamplerGaussian
 The ImageSamplerGaussian class. More...
 
class  ImageSamplerLanczos
 The ImageSamplerLanczos class. More...
 
class  ImageSamplerNearest
 The ImageSamplerNearest class. More...
 
class  IndexedArray
 The IndexedArray class. More...
 
class  KMeans
 
class  KMeansRand
 
struct  LabelInfo
 
class  LabelOutput
 
class  LischinskiTMO
 
class  LiveWire
 
class  LUCIDDescriptor
 The LUCIDDescriptor class. More...
 
class  Mask
 
class  Matrix3x3
 The Matrix3x3 class provides methods for managing a 3 by 3 matrix. More...
 
class  MotionEstimation
 The MotionEstimation class. More...
 
class  MRSamplers
 The MRSamplers class. More...
 
class  MRSamplersGL
 The MRSamplersGL class. More...
 
class  MultiResolutionOperator
 
class  NelderMeadOptBase
 The NelderMeadOptBase class. More...
 
class  NelderMeadOptFundamental
 
class  NelderMeadOptGordonLowe
 
class  NelderMeadOptGrayMatch
 
class  NelderMeadOptHomography
 
class  NelderMeadOptICP2D
 
class  NelderMeadOptPositivePolynomial
 
class  NelderMeadOptRadialDistortion
 
class  NelderMeadOptTestFunction
 
class  NelderMeadOptTriangulation
 
class  ORBDescriptor
 The ORBDescriptor class. More...
 
class  PatchComp
 The PatchComp class. More...
 
class  PoissonDescriptor
 The PoissonDescriptor class. More...
 
class  PoissonFilling
 The PoissonFilling class. More...
 
class  Polyline
 The Polyline class. More...
 
class  Polynomial
 
class  PrecomputedDiffOfGaussians
 The PrecomputedDiffOfGaussians class. More...
 
class  PrecomputedGaussian
 The PrecomputedGaussian class. More...
 
class  ProgramGL
 
class  PushPull
 The PushPull class. More...
 
class  PushPullGL
 The PushPullGL class. More...
 
class  Pyramid
 The Pyramid class. More...
 
class  PyramidGL
 The PyramidGL class. More...
 
class  QuadGL
 The QuadGL class. More...
 
class  Quadtree
 The Quadtree class. More...
 
class  RadialBasisFunction
 The RadialBasisFunction class. More...
 
class  RamanTMO
 The RamanTMO class. More...
 
class  RandomSampler
 The RandomSampler class. More...
 
class  RAW
 
class  ReduxGL
 The ReduxGL class. More...
 
class  ReduxOpsGL
 The BufferOpsGL class. More...
 
class  ReinhardTMO
 The ReinhardTMO class. More...
 
class  ReinhardTMOGL
 The ReinhardTMOGL class. More...
 
class  RichardsonLucyDeconvolutionGL
 
class  SchlickTMO
 The SchlickTMO class. More...
 
class  Segmentation
 The Segmentation class. More...
 
class  SegmentationGL
 The SegmentationGL class. More...
 
class  SIFTDescriptor
 
class  Slic
 The Slic class. More...
 
struct  SlicoCenter
 The SlicoCenter struct. More...
 
class  SparseKernel
 
struct  SparseKernelPoint
 
class  SSIMIndex
 
class  Stereo
 The Stereo class. More...
 
class  StrokeGL
 The StrokeGL class. More...
 
class  SubSampleStack
 The SubSampleStack class. More...
 
class  SuperPixelsOracle
 The SuperPixelsOracle class. More...
 
class  SusanCornerDetector
 The SusanCornerDetector class. More...
 
class  TechniqueGL
 The TechniqueGL class. More...
 
struct  TGA_HEADER
 The TGA_HEADER struct. More...
 
class  Tile
 The Tile class. More...
 
class  TileList
 The TileList class. More...
 
struct  TMP_IMG_HEADER
 The TMP_IMG_HEADER struct is a header for a tmp image. More...
 
class  TMQI
 The TMQI class. More...
 
class  ToneMappingOperator
 The ToneMappingOperator class. More...
 
class  ToneMappingOperatorGL
 The ToneMappingOperator class. More...
 
class  TransformData
 The TransformData class. More...
 
class  TumblinTMO
 The TumblinTMO class. More...
 
class  Vec
 The Vec class. More...
 
class  WardAlignment
 The WardAlignment class. More...
 
class  WardGlobalTMO
 The WardGlobalTMO class. More...
 
class  WardHistogramTMO
 

Typedefs

typedef unsigned int uint
 
typedef unsigned char uchar
 
typedef uintpuint
 
typedef ucharpuchar
 
typedef Vec< 3, float > Color3
 Color3. More...
 
typedef struct pic::_EXRAttribute EXRAttribute
 
typedef struct pic::_EXRImage EXRImage
 
typedef struct pic::_DeepImage DeepImage
 
typedef std::vector< ImageGL * > ImageGLVec
 ImageGLVec an std::vector of pic::ImageGL. More...
 
typedef std::vector< Image * > ImageVec
 ImageVec an std::vector of pic::Image. More...
 
typedef Array< float > Arrayf
 Arrayf. More...
 
typedef Array< int > Arrayi
 Arrayi. More...
 
typedef Array< unsigned int > Arrayui
 Arrayui. More...
 
typedef std::complex< float > complexf
 complexf More...
 
typedef std::complex< double > complexd
 complexd More...
 
typedef std::vector< BufferOpGL * > BufferOperatorsGL
 
typedef std::vector< ReduxGL * > ReduxOperatorsGL
 
typedef std::vector< int > IntCoord
 IntCoord. More...
 
typedef IndexedArray< float > IndexedArrayf
 
typedef IndexedArray< int > IndexedArrayi
 
typedef IndexedArray< unsigned int > IndexedArrayui
 
typedef Polyline< 2, int > Polyline2i
 Polyline2i. More...
 
typedef std::vector< std::string > StringVec
 StringVec is an std::vector of std::string. More...
 
typedef Vec< 2, int > Vec2i
 Vec2i. More...
 
typedef Vec< 3, int > Vec3i
 Vec3i. More...
 
typedef Vec< 4, int > Vec4i
 Vec4i. More...
 
typedef Vec< 2, float > Vec2f
 Vec2f. More...
 
typedef Vec< 3, float > Vec3f
 Vec3f. More...
 

Enumerations

enum  IMG_LIN { IL_LIN, IL_2_2, IL_LUT_8_BIT, IL_POLYNOMIAL }
 
enum  HDRAlign { HA_NONE, HA_MTB, HA_FEATURES }
 
enum  CRF_WEIGHT {
  CW_ALL, CW_HAT, CW_DEB97, CW_DEB97p01,
  CW_ROBERTSON
}
 The CRF_WEIGHT enum. More...
 
enum  CORENE_DETECTOR_TYPE { CD_SHI_TOMASI, CD_HARRIS, CD_NOBLE }
 
enum  HDR_REC_DOMAIN { HRD_LOG, HRD_LIN, HRD_SQ }
 The HDR_REC_DOMAIN enum HRD_LOG: assembling HDR image in the log-domain. More...
 
enum  GRADIENT_TYPE { G_SOBEL, G_PREWITT, G_NORMAL }
 
enum  LUMINANCE_TYPE { LT_CIE_LUMINANCE, LT_LUMA, LT_WARD_LUMINANCE, LT_MEAN }
 
enum  SIGMOID_MODE { SIG_TMO, SIG_TMO_WP, SIG_SDM }
 
enum  BF_TYPE { BF_CLASSIC, BF_CROSS, BF_BRUSH }
 
enum  IMAGESTORE {
  IMG_GPU_CPU, IMG_CPU_GPU, IMG_CPU, IMG_GPU,
  IMG_NULL
}
 
enum  VALUE_SPACE {
  VS_LDR, VS_LIN, VS_LOG_2, VS_LOG_E,
  VS_LOG_10
}
 
enum  METRICS_DOMAIN { MD_LIN, MD_LOG10, MD_PU }
 
enum  MULTI_EXPOSURE_TYPE { MET_HISTOGRAM, MET_MIN_MAX, MET_FROM_INPUT }
 
enum  LDR_type { LT_NOR, LT_NOR_GAMMA, LT_LDR, LT_NONE }
 The LDR_type enum. More...
 
enum  BOGL {
  BOGL_ADD, BOGL_SUB, BOGL_MUL, BOGL_DIV,
  BOGL_ADD_CONST, BOGL_SUB_CONST, BOGL_MUL_CONST, BOGL_DIV_CONST,
  BOGL_ADD_S, BOGL_SUB_S, BOGL_MUL_S, BOGL_DIV_S,
  BOGL_CLAMP, BOGL_ID, BOGL_ID_CONST
}
 
enum  REDGL {
  REDGL_MIN, REDGL_MAX, REDGL_SUM, REDGL_MEAN,
  REDGL_LOG_MEAN
}
 
enum  LABEL_IO_EXTENSION {
  IO_TMP, IO_PFM, IO_HDR, IO_EXR,
  IO_VOL, IO_BMP, IO_PPM, IO_TGA,
  IO_JPG, IO_PNG, IO_PGM, IO_NULL
}
 
enum  SAMPLER_TYPE {
  ST_BRIDSON, ST_DARTTHROWING, ST_PATTERN, ST_MONTECARLO,
  ST_MONTECARLO_S
}
 
enum  RAW_type { RAW_U16_RGGB, RAW_U8_RGGB, RAW_DOUBLE, RAW_FLOAT }
 

Functions

PIC_INLINE void bilateralSeparation (Image *imgIn, ImageVec &out, float sigma_s=-1.0f, float sigma_r=0.4f, bool bLogDomain=false)
 bilateralSeparation More...
 
PIC_INLINE Imagebinarization (Image *imgIn, Image *imgOut=NULL, bool bAdaptive=false)
 binarization More...
 
PIC_INLINE bool * computeColorClassification (Image *img, float *white_pixel, float *color_samples, int nSamples, int nDim, float variance)
 computeColorClassification More...
 
float LischinskiFunction (float Lcur, float Lref, float param[2], float LISCHINSKI_EPSILON=0.0001f)
 LischinskiFunction. More...
 
float LischinskiFunctionGauss (float Lcur, float Lref, float param[2])
 LischinskiFunctionGauss. More...
 
PIC_INLINE ImageLischinskiMinimization (Image *L, Image *g, Image *omega=NULL, float omega_global=1.0f, Image *gOut=NULL, float alpha=1.0f, float lambda=0.4f, float LISCHINSKI_EPSILON=1e-4f)
 LischinskiMinimization. More...
 
PIC_INLINE float MitsunagaNayarClassic (int *samples, const std::size_t nSamples, const std::vector< float > &exposures, std::vector< float > &coefficients, const bool computeRatios, std::vector< float > &R, const float eps, const std::size_t max_iterations)
 MitsunagaNayarClassic computes the inverse CRF of a camera as a polynomial function. More...
 
PIC_INLINE float MitsunagaNayarFull (int *samples, const std::size_t nSamples, const std::vector< float > &exposures, std::vector< float > &coefficients, bool computeRatios, std::vector< std::vector< float >> &R, const float eps, const std::size_t max_iterations)
 MitsunagaNayarFull computes the inverse CRF of a camera as a polynomial function, using all exposure ratios. More...
 
PIC_INLINE ImagecomputePoissonImageEditing (Image *source, Image *target, bool *mask, Image *ret=NULL)
 computePoissonImageEditing More...
 
PIC_INLINE ImagecomputePoissonSolver (Image *f, Image *ret=NULL)
 computePoissonSolver More...
 
PIC_INLINE ImagecomputePoissonSolverIterative (Image *img, Image *laplacian, std::vector< int > coords, int maxSteps=100)
 computePoissonSolverIterative More...
 
PIC_INLINE std::set< int > * setBorder (Image *img, std::set< int > *coordsBorder)
 setBorder More...
 
PIC_INLINE std::set< int > * setBorderNth (Image *img, std::set< int > *coordsBorder, int widthBorder)
 setBorderNth More...
 
PIC_INLINE float weightFunction (float x, CRF_WEIGHT type)
 weightFunction computes weight functions for x in [0,1]. More...
 
template<uint N>
void scaleTau (Vec< N, float > &in, const Vec< N, float > &tau)
 scaleTau More...
 
template<uint N>
void scaleTau (Vec< N, float > &in, const Vec< N, float > &sigma_t, const Vec< N, float > &tau)
 scaleTau More...
 
template<uint N>
void scaleTau (Vec< N, float > &in, const Vec< N, float > &sigma_t, float t)
 scaleTau More...
 
template<uint N>
float colorLuminance (Vec< N, float > &in)
 colorLuminance More...
 
template<uint N>
void colorSaturate (Vec< N, float > &in)
 colorSaturate More...
 
template<uint N>
void importanceSampling (Vec< N, float > &in, float e, int &channel, float &pdf)
 importanceSampling More...
 
template<uint N>
Vec< N, float > convertToLDR (Vec< N, float > &in, float exposure=1.0f, float gammaCor=2.2f, float maxVal=255.0f)
 convertToLDR More...
 
float * createMatrixFromPrimaries (float *red_XYZ, float *green_XYZ, float *blue_XYZ, float *white_point_XYZ, float *ret=NULL)
 createMatrixFromPrimaries computes a matrix for converting XYZ values into the defined color space (i.e., by defining the three primaries: red, green, and blue). More...
 
PIC_INLINE void fromFloatToRGBE (float *colFloat, unsigned char *colRGBE)
 fromFloatToRGBE More...
 
PIC_INLINE void fromSingleFloatToRGBE (float *colFloat, unsigned char *colRGBE)
 fromSingleFloatToRGBE More...
 
PIC_INLINE void fromRGBEToFloat (unsigned char *colRGBE, float *colFloat)
 fromRGBEToFloat More...
 
PIC_INLINE float computeSaturation (float *data, int channels=3)
 computeSaturation More...
 
PIC_INLINE Eigen::Vector3d computeEpipole (Eigen::Matrix3d &F)
 computeEpipole computes the epipole of a fundamental matrix F. More...
 
PIC_INLINE Eigen::Matrix34d getCameraMatrixFromHomography (Eigen::Matrix3d &H, Eigen::Matrix3d &K)
 getCameraMatrixFromHomography More...
 
PIC_INLINE Eigen::Matrix34d getCameraMatrixIdentity (Eigen::Matrix3d &K)
 getCameraMatrixIdentity More...
 
PIC_INLINE Eigen::Matrix34d getCameraMatrix (Eigen::Matrix3d &K, Eigen::Matrix3d &R, Eigen::Vector3d &t)
 getCameraMatrix More...
 
PIC_INLINE void decomposeCameraMatrix (Eigen::Matrix34d &P, Eigen::Matrix3d &K, Eigen::Matrix3d &R, Eigen::Vector3d &t)
 decomposeCameraMatrix More...
 
PIC_INLINE Eigen::Vector2i cameraMatrixProject (Eigen::Matrix34d &M, Eigen::Vector4d &p)
 cameraMatrixProject projects a point, p, using the camera matrix, M. More...
 
PIC_INLINE Eigen::Vector2i cameraMatrixProject (Eigen::Matrix34d &M, Eigen::Vector3d &p)
 cameraMatrixProject projects a point, p, using the camera matrix, M. More...
 
PIC_INLINE Eigen::Vector2i cameraMatrixProjection (Eigen::Matrix34d &M, Eigen::Vector3d &p, double cx, double cy, double fx, double fy, double lambda)
 cameraMatrixProjection More...
 
PIC_INLINE Eigen::Vector3d getOpticalCenter (Eigen::Matrix34d &P)
 getOpticalCenter More...
 
PIC_INLINE void cameraRectify (Eigen::Matrix3d &K0, Eigen::Matrix3d &R0, Eigen::Vector3d &t0, Eigen::Matrix3d &K1, Eigen::Matrix3d &R1, Eigen::Vector3d &t1, Eigen::Matrix34d &P0_out, Eigen::Matrix34d &P1_out, Eigen::Matrix3d &T0, Eigen::Matrix3d &T1)
 cameraRectify More...
 
PIC_INLINE void cameraRectify (Eigen::Matrix34d &P0_in, Eigen::Matrix34d &P1_in, Eigen::Matrix34d &P0_out, Eigen::Matrix34d &P1_out, Eigen::Matrix3d &T0, Eigen::Matrix3d &T1)
 cameraRectify More...
 
PIC_INLINE Eigen::Matrix3d computeEssentialMatrix (Eigen::Matrix3d &F, Eigen::Matrix3d &K1, Eigen::Matrix3d &K2)
 computeEssentialMatrix computes the essential matrix, E, from the fundamental matrix, F12, and the two intrics matrices K1 and K2 More...
 
PIC_INLINE Eigen::Matrix3d computeEssentialMatrix (Eigen::Matrix3d &F, Eigen::Matrix3d &K)
 computeEssentialMatrix computes the essential matrix, E, from the fundamental matrix, F, and a single instrics camera, K. More...
 
PIC_INLINE void decomposeEssentialMatrix (Eigen::Matrix3d &E, Eigen::Matrix3d &R1, Eigen::Matrix3d &R2, Eigen::Vector3d &t)
 decomposeEssentialMatrix decomposes an essential matrix E. More...
 
PIC_INLINE bool decomposeEssentialMatrixWithConfiguration (Eigen::Matrix3d &E, Eigen::Matrix3d &K0, Eigen::Matrix3d &K1, std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1, Eigen::Matrix3d &R, Eigen::Vector3d &t)
 decomposeEssentialMatrixWithConfiguration decomposes an essential matrix E. More...
 
PIC_INLINE float getMinDistance (std::vector< Eigen::Vector2f > &points)
 getMinDistance More...
 
PIC_INLINE float estimateCheckerBoardSize (std::vector< Eigen::Vector2f > &points)
 estimateCheckerBoardSize More...
 
PIC_INLINE float estimateCheckerBoardSizeCross (std::vector< Eigen::Vector2f > &points)
 estimateCheckerBoardSizeCross More...
 
PIC_INLINE ImagegetCheckerBoardModel (int checkers_x, int checkers_y, int checkers_size, std::vector< Eigen::Vector2f > &out)
 getCheckerBoardModel More...
 
PIC_INLINE void findCheckerBoard (Image *img, std::vector< Eigen::Vector2f > &corners_model, int checkerBoardSizeX=4, int checkerBoardSizeY=7)
 findCheckerBoard More...
 
PIC_INLINE float estimateLengthOfCheckers (std::vector< Eigen::Vector2f > &corners_model, Eigen::Vector2f &p0, Eigen::Vector2f &p1)
 estimateLengthInPixelOfCheckers More...
 
PIC_INLINE Eigen::Vector2f estimateCoordinatesWhitePointFromCheckerBoard (Image *img, std::vector< Eigen::Vector2f > &corners_model, int checkerBoardSizeX=4, int checkerBoardSizeY=6)
 estimateCoordinatesWhitePointFromCheckerBoard More...
 
PIC_INLINE float * estimateWhitePointFromCheckerBoard (Image *img, std::vector< Eigen::Vector2f > &corners_model, int checkerBoardSizeX=4, int checkerBoardSizeY=6)
 estimateWhitePointFromCheckerBoard More...
 
PIC_INLINE Eigen::Matrix3d estimateFundamental (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1)
 estimateFundamental estimates the foundamental matrix between image 1 to image 2 More...
 
PIC_INLINE Eigen::Matrix3d estimateFundamentalRansac (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1, std::vector< unsigned int > &inliers, unsigned int maxIterations=100, double threshold=0.01, unsigned int seed=1)
 estimateFundamentalRansac More...
 
PIC_INLINE Eigen::Matrix3d estimateFundamentalWithNonLinearRefinement (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1, std::vector< unsigned int > &inliers, unsigned int maxIterationsRansac=100, double thresholdRansac=0.01, unsigned int seed=1, unsigned int maxIterationsNonLinear=10000, float thresholdNonLinear=1e-4f)
 estimateFundamentalWithNonLinearRefinement More...
 
PIC_INLINE Eigen::Matrix3d noramalizeFundamentalMatrix (Eigen::Matrix3d F)
 noramalizeFundamentalMatrix More...
 
PIC_INLINE Eigen::Matrix3d extractFundamentalMatrix (Eigen::Matrix34d &M0, Eigen::Matrix34d &M1, Eigen::VectorXd &e0, Eigen::VectorXd &e1)
 extractFundamentalMatrix More...
 
PIC_INLINE Eigen::Matrix3d estimateFundamentalFromImages (Image *img0, Image *img1, std::vector< Eigen::Vector2f > &m0, std::vector< Eigen::Vector2f > &m1, std::vector< unsigned int > &inliers)
 estimateFundamentalFromImages More...
 
PIC_INLINE Eigen::Matrix3d estimateHomography (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1)
 estimateHomography estimates an homography matrix H between image 1 to image 2 More...
 
PIC_INLINE Eigen::Matrix3d estimateHomographyRansac (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1, std::vector< unsigned int > &inliers, unsigned int maxIterations=100, double threshold=4.0, unsigned int seed=1)
 estimateHomographyRansac computes the homography such that: points1 = H * points0 More...
 
PIC_INLINE Eigen::Matrix3d estimateHomographyWithNonLinearRefinement (std::vector< Eigen::Vector2f > &points0, std::vector< Eigen::Vector2f > &points1, std::vector< unsigned int > &inliers, unsigned int maxIterationsRansac=10000, double thresholdRansac=2.5, unsigned int seedRansac=1, unsigned int maxIterationsNonLinear=10000, float thresholdNonLinear=1e-5f)
 estimateHomographyRansac computes the homography such that: points1 = H * points0 More...
 
Eigen::Matrix3d getHomographyMatrixFromTwoImage (Image *img0, Image *img1)
 getHomographyMatrixFromTwoImage More...
 
ImageimageAlignmentWithORB (Image *img0, Image *img1, Image *imgOut)
 imageAlignmentWithORB More...
 
PIC_INLINE double getFocalLengthFromFOVAngle (double fovy)
 getFocalLengthFromFOVAngle More...
 
PIC_INLINE double getFOVAngleFromFocalSensor (double f, double x, double y)
 getFOVAngleFromFocalSensor More...
 
PIC_INLINE double getFocalLengthPixels (double focal_length_mm, double sensor_size_mm, double sensor_size_px)
 getFocalLengthPixels More...
 
PIC_INLINE Eigen::Matrix3d getIntrinsicsMatrix (double focal_length, double m_x, double m_y, double opitical_center_x, double opitical_center_y)
 getIntrinsicsMatrix More...
 
PIC_INLINE Eigen::Matrix3d getIntrinsicsMatrix (double focal_length_x, double focal_length_y, double opitical_center_x, double opitical_center_y)
 getIntrinsicsMatrix More...
 
PIC_INLINE Eigen::Vector2d removeLensDistortion (Eigen::Vector2d &p, double k[5])
 removeLensDistortion More...
 
PIC_INLINE Eigen::Vector2f getMeanVector2f (std::vector< Eigen::Vector2f > &p)
 getMean More...
 
PIC_INLINE Eigen::Vector2f getMedianVector2f (std::vector< Eigen::Vector2f > &p)
 getMedianVector2f More...
 
PIC_INLINE ICP2DTransform estimateRotatioMatrixAndTranslation (std::vector< Eigen::Vector2f > &p0, std::vector< Eigen::Vector2f > &p1, std::vector< unsigned int *> &p0_descs, std::vector< unsigned int *> &p1_descs, int size_descs, int *ind=NULL)
 estimateRotatioMatrixAndTranslation More...
 
PIC_INLINE float getErrorPointsList (std::vector< Eigen::Vector2f > &p0, std::vector< Eigen::Vector2f > &p1)
 getErrorPointsList More...
 
PIC_INLINE void iterativeClosestPoints2D (std::vector< Eigen::Vector2f > &points_pattern, std::vector< Eigen::Vector2f > &points, std::vector< unsigned int *> &points_pattern_descs, std::vector< unsigned int *> &points_descs, int size_descs, int maxIterations=1000)
 iterativeClosestPoints2D More...
 
PIC_INLINE ImageVeccomputeImageRectificationWarp (Image *img0, Image *img1, Eigen::Matrix3d &T0, Eigen::Matrix3d &T1, ImageVec *out, bool bPartial=true)
 computeImageRectificationWarp More...
 
PIC_INLINE ImageVeccomputeImageRectification (Image *img0, Image *img1, Eigen::Matrix34d &M0, Eigen::Matrix34d &M1, ImageVec *out=NULL, bool bPartial=true)
 computeImageRectification this function rectifies two images More...
 
PIC_INLINE ImageVeccomputeImageRectification (Image *img0, Image *img1, Eigen::Matrix3d &K0, Eigen::Matrix3d &R0, Eigen::Vector3d &t0, Eigen::Matrix3d &K1, Eigen::Matrix3d &R1, Eigen::Vector3d &t1, ImageVec *out=NULL, bool bPartial=true)
 computeImageRectification this function rectifies two images More...
 
PIC_INLINE void alignPanoramicLL (Eigen::Matrix3d &R0, Eigen::Vector3d &t0, Eigen::Matrix3d &R1, Eigen::Vector3d &t1, Eigen::Matrix3d &R01, Eigen::Vector3d &t01)
 alignPanoramicLL More...
 
PIC_INLINE ImageVeccomputeImageRectificationPanoramicLL (Image *img0, Image *img1, Eigen::Matrix3d &R01, Eigen::Vector3d &t01, ImageVec *out=NULL)
 computeImageRectificationPanoramicLL More...
 
PIC_INLINE bool writeSimplePLY (std::string name, std::vector< Eigen::Vector3d > &points_3d, std::vector< unsigned char > &colors)
 
PIC_INLINE Eigen::Vector3d triangulationLonguetHiggins (Eigen::Vector3d &point_0, Eigen::Vector3d &point_1, Eigen::Matrix3d &R, Eigen::Vector3d &t)
 triangulationLonguetHiggins computes triangulation using Longuet-Higgins equations. More...
 
PIC_INLINE Eigen::Vector4d triangulationHartleySturm (Eigen::Vector3d &point_0, Eigen::Vector3d &point_1, Eigen::Matrix34d &M0, Eigen::Matrix34d &M1, int maxIter=100)
 triangulationHartl Sturm More...
 
PIC_INLINE void triangulationPoints (Eigen::Matrix34d &M0, Eigen::Matrix34d &M1, std::vector< Eigen::Vector2f > &m0f, std::vector< Eigen::Vector2f > &m1f, std::vector< Eigen::Vector3d > &points_3d, std::vector< unsigned char > &colors, Image *img0=NULL, Image *img1=NULL, bool bColor=false)
 triangulationPoints More...
 
PIC_INLINE std::vector< int > SingleInt (int v0)
 SingleInt. More...
 
PIC_INLINE std::vector< int > TripleInt (int v0, int v1, int v2)
 TripleInt. More...
 
int LoadEXR (float **out_rgba, int *width, int *height, const char *filename, const char **err)
 
int ParseMultiChannelEXRHeaderFromFile (EXRImage *image, const char *filename, const char **err)
 
int ParseMultiChannelEXRHeaderFromMemory (EXRImage *image, const unsigned char *memory, const char **err)
 
int LoadMultiChannelEXRFromFile (EXRImage *image, const char *filename, const char **err)
 
int LoadMultiChannelEXRFromMemory (EXRImage *image, const unsigned char *memory, const char **err)
 
int SaveMultiChannelEXRToFile (const EXRImage *image, const char *filename, const char **err)
 
size_t SaveMultiChannelEXRToMemory (const EXRImage *image, unsigned char **memory, const char **err)
 
int LoadDeepEXR (DeepImage *out_image, const char *filename, const char **err)
 
void InitEXRImage (EXRImage *exrImage)
 
int FreeEXRImage (EXRImage *exrImage)
 
int ParseEXRHeaderFromMemory (EXRAttribute *customAttributes, int *numCustomAttributes, int *width, int *height, const unsigned char *memory)
 
int LoadEXRFromMemory (float *out_rgba, const unsigned char *memory, const char **err)
 
int SaveDeepEXR (const DeepImage *deepImage, const char *filename, const char **err)
 
PIC_INLINE int getValueBF (BF_TYPE type)
 getValueBF More...
 
PIC_INLINE ImageGLVec SingleGL (ImageGL *img)
 SingleGL creates a single for filters input. More...
 
PIC_INLINE ImageGLVec DoubleGL (ImageGL *img1, ImageGL *img2)
 DoubleGL creates a couple for filters input. More...
 
PIC_INLINE ImageGLVec TripleGL (ImageGL *img1, ImageGL *img2, ImageGL *img3)
 TripleGL creates a triple for filters input. More...
 
PIC_INLINE bool ImageGLVecCheck (ImageGLVec &imgIn, int minInputImages)
 ImageGLVecCheck. More...
 
PIC_INLINE void glGetPrintError ()
 glGetPrintError More...
 
PIC_INLINE ImageGLVec getAllExposuresImagesGL (ImageGL *imgIn, float gamma=2.2f)
 getAllExposuresImagesGL converts an HDR image into a stack of LDR images More...
 
PIC_INLINE ImageVec Single (Image *img)
 Single creates an std::vector which contains img; this is for filters input. More...
 
PIC_INLINE ImageVec Double (Image *img1, Image *img2)
 Double creates an std::vector which contains img1 and img2; this is for filters input. More...
 
PIC_INLINE ImageVec Triple (Image *img1, Image *img2, Image *img3)
 Triple creates an std::vector which contains img1, img2, and img3; this is for filters input. More...
 
PIC_INLINE ImageVec Quad (Image *img1, Image *img2, Image *img3, Image *img4)
 Triple creates an std::vector which contains img1, img2, img3, and img4; this is for filters input. More...
 
PIC_INLINE void ImaveVecSortByExposureTime (ImageVec &stack)
 ImaveVecSortByExposureTime. More...
 
PIC_INLINE void ImaveVecGetExposureTimesAsArray (ImageVec &stack, std::vector< float > &output, bool bLog)
 ImaveVecGetExposureTimesAsArray. More...
 
PIC_INLINE bool ImageVecCheckSimilarType (ImageVec &stack)
 ImageVecCheckSimilarType. More...
 
PIC_INLINE bool ImageVecCheck (ImageVec &imgIn, int minInputImages)
 ImageVecCheck. More...
 
int BitmapPadding (int bpp, int width)
 BitmapPadding (SYSTEM: X POS Y POS). More...
 
PIC_INLINE unsigned char * ReadBMP (std::string nameFile, unsigned char *data, int &width, int &height, int &channels)
 ReadBMP reads an image as .bmp file. More...
 
PIC_INLINE bool WriteBMP (std::string nameFile, const unsigned char *data, int width, int height, int channels)
 WriteBMP writes an image as a .bmp file. More...
 
unsigned int twoByteToValue (unsigned char data[2], bool bMotorola)
 twoByteToValue More...
 
unsigned int fourByteToValue (unsigned char data[4], bool bMotorola)
 fourByteToValue More...
 
bool checkTag (unsigned char tag[2], unsigned short tag_r, bool bMotorola)
 checkTag More...
 
int getTagID (unsigned char tag[2], bool bMotorola)
 getTagID More...
 
int getBytesForComponents (int value)
 getBytesForComponents More...
 
std::string readString (FILE *file, int length)
 readString More...
 
std::string readStringFromUChar (unsigned char *data, int length)
 readStringFromUChar More...
 
float readUnsignedRational (FILE *file, bool bMotorola)
 readUnsignedRational More...
 
bool readEXIF (std::string name, EXIFInfo &info)
 readEXIF More...
 
PIC_INLINE float * ReadEXR (std::string nameFile, float *data, int &width, int &height, int &channels)
 
PIC_INLINE bool WriteEXR (std::string nameFile, float *data, int width, int height, int channels=3)
 WriteEXR. More...
 
PIC_INLINE float * ReadHDR (std::string nameFile, float *data, int &width, int &height)
 ReadHDR reads a .hdr/.pic file. More...
 
PIC_INLINE void WriteLineHDR (FILE *file, unsigned char *buffer_line, int width)
 WriteLineHDR writes a scanline of an image using RLE and RGBE encoding. More...
 
PIC_INLINE bool WriteHDR (std::string nameFile, float *data, int width, int height, int channels, float appliedExposure=1.0f, bool bRLE=true)
 WriteHDR writes a .hdr/.pic file. More...
 
PIC_INLINE bool WriteHDRBlock (std::string nameFile, float *buffer_line, int width, int height, int channels, int blockID, int nBlocks)
 WriteHDRBlock writes a .hdr file. More...
 
PIC_INLINE float convertFloatEndianess (float value)
 convertFloatEndianess converts a float from little-endian to big-endian or viceversa. More...
 
PIC_INLINE float * ReadPFM (std::string nameFile, float *data, int &width, int &height, int &channel)
 ReadPFM loads a portable float map from a file. More...
 
PIC_INLINE bool WritePFM (std::string nameFile, float *data, int width, int height, int channels=3)
 WritePFM writes an HDR image in the portable float map format into a file. More...
 
PIC_INLINE unsigned char * ReadPGM (std::string nameFile, unsigned char *data, int &width, int &height, int &channels)
 ReadPGM reads an .ppm file. More...
 
PIC_INLINE bool WritePGM (std::string nameFile, const unsigned char *data, int width, int height, int channels, bool bAscii=false)
 WritePGM writes an .ppm file. More...
 
PIC_INLINE unsigned char * ReadPPM (std::string nameFile, unsigned char *data, int &width, int &height, int &channels)
 ReadPPM reads an .ppm file. More...
 
PIC_INLINE bool WritePPM (std::string nameFile, const unsigned char *data, int width, int height, int channels)
 WritePPM writes an .ppm file. More...
 
PIC_INLINE unsigned char * ReadSTB (std::string nameFile, int &width, int &height, int &channels)
 ReadSTB. More...
 
PIC_INLINE bool WriteSTB (std::string nameFile, unsigned char *data, int width, int height, int channels=3)
 WriteSTB. More...
 
PIC_INLINE unsigned char * ReadTGA (std::string nameFile, unsigned char *data, int &width, int &height, int &channels)
 ReadTGA reads an image in the .tga format. More...
 
PIC_INLINE bool WriteTGA (std::string nameFile, const unsigned char *data, int width, int height, int channels)
 WriteTGA writes an image in the .tga format. More...
 
PIC_INLINE float * ReadTMP (std::string nameFile, float *data, int &width, int &height, int &channels, int &frames, bool bHeader=true)
 ReadTMP reads a dump temp file. More...
 
PIC_INLINE bool WriteTMP (std::string nameFile, float *data, int &width, int &height, int &channels, int &frames, bool bHeader=true)
 WriteTMP writes a dump temp file. More...
 
PIC_INLINE float * ReadVOL (std::string nameFile, float *data, int &width, int &height, int &depth, int &channels)
 ReadVOL. More...
 
PIC_INLINE bool WriteVOL (std::string nameFile, float *data, int width, int height, int depth, int channels=3)
 WriteVOL. More...
 
PIC_INLINE std::vector< int > extractCheckerBoardJNI (std::string imageInPath, std::string imageOutPath)
 extractCheckerBoardJNI More...
 
PIC_INLINE std::vector< int > executeLiveWireMultipleJNI (std::string imageInPath, std::vector< int > controlPoints, bool bDownsample)
 executeLiveWireMultipleJNI More...
 
PIC_INLINE int applyWhiteBalanceJNI (std::string imageInPath, std::string imageOutPath, int x, int y, bool bRobust=false)
 applyWhiteBalanceJNI More...
 
float changeDomain (float x, METRICS_DOMAIN type=MD_LIN)
 changeDomain More...
 
PIC_INLINE double logRMSE (Image *ori, Image *cmp)
 logRMSE computes root mean square error (RMSE) in the log_e domain. More...
 
PIC_INLINE double mPSNR (Image *ori, Image *cmp, MULTI_EXPOSURE_TYPE type, int minFstop=0, int maxFstop=0)
 mPSNR computes the multiple-exposure peak signal-to-noise ratio (mPSNR) between two images. More...
 
PIC_INLINE double MAE (Image *ori, Image *cmp, bool bLargeDifferences=false, METRICS_DOMAIN type=MD_LIN)
 MAE computes the mean abosulute errore (MAE) between two images. More...
 
PIC_INLINE float MaximumError (Image *ori, Image *cmp, bool bLargeDifferences=false)
 MaximumError computes the maximum error between two images. More...
 
PIC_INLINE double MSE (Image *ori, Image *cmp, bool bLargeDifferences=false, METRICS_DOMAIN type=MD_LIN)
 MSE computes the mean square error (MSE) between two images. More...
 
PIC_INLINE double MSE (Image *ori, Image *cmp, float gamma=2.2f, float fstop=0.0f, int nBit=8)
 MSE computes the mean square error (MSE) between two HDR images with given exposure and gamma. More...
 
PIC_INLINE double RMSE (Image *ori, Image *cmp, bool bLargeDifferences=false, METRICS_DOMAIN type=MD_LIN)
 RMSE computes the root mean squared error (RMSE) between two images. More...
 
PIC_INLINE double PSNR (Image *ori, Image *cmp, double max_value=-1.0, bool bLargeDifferences=false, METRICS_DOMAIN type=MD_LIN)
 PSNR computes the peak signal to noise ratio (PSNR) between two images. More...
 
float PUEncode (float L)
 PUEncode encodes luminance values in a perceptually uniform space. More...
 
float PUDecode (float p)
 PUDecode decodes perceptually uniform values into luminance values. More...
 
PIC_INLINE double RelativeError (Image *ori, Image *cmp, bool bLargeDifferences=false, METRICS_DOMAIN type=MD_LIN)
 RelativeError computes the relative error between two images. More...
 
template<unsigned int N>
bool checkNeighborsBruteForce (std::vector< Vec< N, float > > &samples, Vec< N, float > x, float radius)
 checkNeighborsBruteForce More...
 
template<unsigned int N>
void getBridsonSamples (std::mt19937 *m, float radius, std::vector< float > &samples, int kSamples=30)
 getBridsonSamples More...
 
template<unsigned int N>
void getDartThrowingSamples (std::mt19937 *m, float radius2, int nSamples, std::vector< float > &samples)
 getDartThrowingSamples More...
 
template<unsigned int N>
PIC_INLINE void getMonteCarloSamples (std::mt19937 *m, int nSamples, std::vector< float > &samples)
 getMonteCarloSamples More...
 
template<unsigned int N>
PIC_INLINE void getMonteCarloStratifiedSamples (std::mt19937 *m, int nSamples, std::vector< float > &samples)
 getMonteCarloStratifiedSamples More...
 
template<unsigned int N>
PIC_INLINE void getPatternMethodSamples (int nSamples, std::vector< float > &samples)
 getPatternMethodSampler More...
 
template<unsigned int N>
PIC_INLINE void ConvertVectorToPlus1 (std::vector< RandomSampler< N > > &rsVec, RandomSampler< N+1 > &rsOut)
 
PIC_INLINE float findBestExposureHistogram (Image *img)
 findBestExposureHistogram computes the best exposure value for an image, img, More...
 
PIC_INLINE float findBestExposureMean (Image *img)
 findBestExposureMean More...
 
PIC_INLINE void getMinMaxFstops (Image *imgIn, int &minFstop, int &maxFstop)
 getMinMaxFstops computes the minimum and maximum f-stop values of an image. More...
 
PIC_INLINE std::vector< float > getAllExposuresUniform (Image *imgIn)
 getAllExposuresUniform computes all required exposure values for reconstructing the input image using uniform sampling More...
 
PIC_INLINE std::vector< float > getAllExposures (Image *imgIn)
 getAllExposures computes all required exposure values for reconstructing the input image using histogram sampling More...
 
PIC_INLINE ImageVec getAllExposuresImages (Image *imgIn, std::vector< float > &fstops, float gamma=2.2f)
 getAllExposuresImages converts an image into a stack of images. More...
 
PIC_INLINE ImageVec getAllExposuresImages (Image *imgIn, float gamma=2.2f)
 getAllExposuresImages converts an image into a stack of images. More...
 
PIC_INLINE int timeGetTime ()
 
PIC_INLINE void ConvertRAWtoImages (std::string nameDirectory, std::string format, int width, int height)
 ConvertRAWtoImages converts .RAW into format. More...
 
PIC_INLINE void ConvertDetect (std::string nameDirectory, std::string format, int width, int height)
 ConvertDetect. More...
 
PIC_INLINE float estimateAverageLuminance (float shutter_speed, float aperture_value=1.0f, float iso_value=1.0f, float K_value=12.5f)
 estimateAverageLuminance estimates the average luminance of the shot. More...
 
PIC_INLINE bool checkNormalized (const float *data, int size, float delta=1e-6f)
 checkNormalized checks if data is in [0,1]. More...
 
PIC_INLINE float * convertLDR2HDR (unsigned char *dataIn, float *dataOut, int size, LDR_type type, float gamma=2.2f)
 convertLDR2HDR converts a buffer of unsigned char into float. More...
 
PIC_INLINE unsigned char * convertHDR2LDR (const float *dataIn, unsigned char *dataOut, int size, LDR_type type, float gamma=2.2f)
 convertHDR2LDR converts a buffer of float into unsigned char. More...
 
PIC_INLINE Eigen::Matrix34d readMatrix34dFromFile (std::string nameFile)
 readMatrix34dFromFile More...
 
PIC_INLINE bool writeMatrix34dToFile (std::string nameFile, Eigen::Matrix34d &mat)
 writeMatrix34dToFile More...
 
PIC_INLINE Eigen::Matrix3d DiagonalMatrix (Eigen::Vector3d D)
 DiagonalMatrix creates a diagonal matrix. More...
 
PIC_INLINE Eigen::Vector3d getDiagonalFromMatrix (Eigen::Matrix3d &mat)
 getDiagonalFromMatrix More...
 
PIC_INLINE Eigen::Matrix3d getSquareMatrix (Eigen::Matrix34d &mat)
 getSquareMatrix More...
 
PIC_INLINE Eigen::Vector3d getLastColumn (Eigen::Matrix34d &mat)
 getLastColumn More...
 
PIC_INLINE Eigen::Vector3f addOne (Eigen::Vector2f &x)
 addOne More...
 
PIC_INLINE Eigen::Vector3d addOne (Eigen::Vector2d &x)
 addOne More...
 
PIC_INLINE Eigen::Vector4d addOne (Eigen::Vector3d &x)
 addOne More...
 
PIC_INLINE void printfVet3d (Eigen::Vector3d &x)
 printfVet3d More...
 
PIC_INLINE void printfMat (Eigen::MatrixXd mat)
 printf More...
 
PIC_INLINE void printfMat (Eigen::Matrix3f &mat)
 printf More...
 
PIC_INLINE void printfMat34d (Eigen::Matrix34d &mat)
 printf More...
 
PIC_INLINE void fprintfMat (Eigen::MatrixXd &mat, std::string name)
 fprintf More...
 
PIC_INLINE void printfMat (Eigen::Matrix3d &mat)
 printf More...
 
PIC_INLINE Eigen::Matrix3d getShiftScaleMatrix (Eigen::Vector3f &info)
 getShiftScaleMatrix computes a shifting and scaling matrix More...
 
PIC_INLINE Eigen::Matrix3d CrossProduct (Eigen::Vector3d &t)
 CrossProduct computes a cross product matrix from a vector. More...
 
PIC_INLINE Eigen::Vector3d rigidTransform (Eigen::Vector3d &point, Eigen::Matrix3d &R, Eigen::Vector3d &t)
 rigidTransform computes a rigidi transformation in 3D. More...
 
PIC_INLINE Eigen::Matrix3d RotationMatrixRefinement (Eigen::Matrix3d &R)
 RotationMatrixRefinement. More...
 
PIC_INLINE Matrix3x3 MatrixConvert (Eigen::Matrix3f &mat)
 MatrixConvert converts a matrix from a Eigen::Matrix3f representation into a Matrix3x3 representation. More...
 
PIC_INLINE Matrix3x3 MatrixConvert (Eigen::Matrix3d &mat)
 MatrixConvert converts a matrix from a Eigen::Matrix3f representation into a Matrix3x3 representation. More...
 
PIC_INLINE float * getLinearArrayFromMatrix (Eigen::Matrix3d &mat)
 getLinearArray More...
 
PIC_INLINE float * getLinearArrayFromMatrix (Eigen::Matrix3f &mat)
 getLinearArray More...
 
PIC_INLINE Eigen::MatrixXf getMatrixfFromLinearArray (float *array, int rows, int cols)
 getMatrixFromLinearArray More...
 
PIC_INLINE Eigen::MatrixXd getMatrixdFromLinearArray (float *array, int rows, int cols)
 getMatrixFromLinearArray More...
 
PIC_INLINE Eigen::Matrix3d getMatrix3dFromLinearArray (float *array)
 getMatrix3dFromLinearArray More...
 
PIC_INLINE Eigen::Matrix3f MatrixConvert (Matrix3x3 &mat)
 MatrixConvert. More...
 
PIC_INLINE Eigen::Vector3f ComputeNormalizationTransform (std::vector< Eigen::Vector2f > &points)
 ComputeNormalizationTransform. More...
 
PIC_INLINE Vec2i convertFromEigenToVec (Eigen::Vector2i &x)
 convertFromEigenToVec More...
 
PIC_INLINE unsigned int RE (unsigned int x)
 RE. More...
 
PIC_INLINE unsigned int IM (unsigned int x)
 IM. More...
 
PIC_INLINE float * DFT1D (float *in, unsigned int n, float *out=NULL)
 DFT1D. More...
 
PIC_INLINE unsigned int bitReversal (unsigned int n, unsigned int nbit)
 bitReversal More...
 
PIC_INLINE float * FFTIterative1D (float *in, unsigned int n, float *out=NULL)
 FFTIterative1D. More...
 
PIC_INLINE void fftTest ()
 fftTest More...
 
PIC_INLINE std::string GLSL_BICUBIC ()
 GLSL_BICUBIC returns bicubic sample. More...
 
PIC_INLINE std::string GLSL_TEXTURE_BICUBIC ()
 GLSL_TEXTURE_BICUBIC. More...
 
PIC_INLINE GLuint generateTexture2DGL (int width, int height, int channels, float *data=NULL, bool mipmap=false)
 generateTexture2DGL More...
 
PIC_INLINE GLuint generateTextureCubeMapGL (int width, int height, int channels, int frames, float *data=NULL)
 generateTextureCubeMapGL More...
 
PIC_INLINE GLuint generateTexture3DGL (int width, int height, int channels, int frames, float *data=NULL)
 generateTexture3DGL More...
 
PIC_INLINE GLuint generateTexture2DArrayGL (int width, int height, int channels, int frames, float *data=NULL)
 generateTexture2DArrayGL More...
 
PIC_INLINE GLuint generateTexture2DU32GL (int width, int height, int channels, int *data=NULL)
 generateTexture2DU32GL More...
 
void getModesGL (int channels, int &mode, int &modeInternalFormat)
 getModesGL More...
 
void getModesHalfGL (int channels, int &mode, int &modeInternalFormat)
 getModesHalfGL More...
 
void getModesIntegerGL (int channels, int &mode, int &modeInternalFormat)
 getModesIntegerGL More...
 
int getChannelsFromInternalFormatGL (int internalFormat)
 getChannelsFromInternalFormatGL returns the number of channels given an internal format. More...
 
PIC_INLINE void getTextureInformationGL (GLuint texture, GLuint target, int &width, int &height, int &frames, int &channels)
 getTextureInformationGL returns width, height and frames values from a texture with target. More...
 
PIC_INLINE GLuint GenerateMask (int width, int height, bool *buffer=NULL, GLuint tex=0, unsigned char *tmpBuffer=NULL, bool mipmap=false)
 GenerateMask creates an opengl mask (a texture) from a buffer of bool values. More...
 
GLuint glBeginTimeQuery ()
 glBeginTimeQuery More...
 
GLuint64 glEndTimeQuery (GLuint64 ret)
 glEndTimeQuery More...
 
PIC_INLINE std::string GLSL_SIMPLE_EXPOSURE_GAMMA ()
 GLSL_SIMPLE_EXPOSURE_GAMMA applies a simple gamma correctiona and exposure in a shader. More...
 
PIC_INLINE std::string GLSL_DRAGO_TMO ()
 GLSL_DRAGO_TMO returns Drago et al.'s tone mapping operator. More...
 
template<class Scalar >
Scalar Bilinear (Scalar a, Scalar b, Scalar c, Scalar d, float x, float y)
 Bilinear calculates 2D bilinear interpolation at the point (x,y). More...
 
void invBilinear (float A, float dx, float dy, float *out)
 invBilinear More...
 
float Rx (float x)
 Rx evaluates B-spline (cubic). More...
 
float MitchellNetravali (float x, float B, float C)
 MitchellNetravali. More...
 
float Bicubic (float x)
 Bicubic. More...
 
float CatmullRom (float x)
 CatmullRom. More...
 
float Lanczos (float x, float a)
 Lanczos. More...
 
PIC_INLINE LABEL_IO_EXTENSION getLabelHDRExtension (std::string nameFile)
 getLabelHDRExtension returns the file label given its file name (for HDR images). More...
 
PIC_INLINE LABEL_IO_EXTENSION getLabelLDRExtension (std::string nameFile)
 getLabelHDRExtension returns the file label given its file name (for LDR images). More...
 
template<typename T >
PIC_INLINE bool isnan (T value)
 isnan is it a NaN? More...
 
template<typename T >
PIC_INLINE bool isinf (T value)
 isinf is it a Inf value? More...
 
PIC_INLINE bool equalf (float a, float b)
 equalf checks if two float values are the same or not. More...
 
PIC_INLINE float getRandombase ()
 Randombase returns a number in [0, 1] based on rand(). More...
 
PIC_INLINE float getRandom (unsigned int n)
 Random returns a number in [0, 2^32 - 1] to a float in [0, 1]. More...
 
PIC_INLINE int getRandomInt (int n, int a, int b)
 getRandomInt More...
 
PIC_INLINE float sFunction (float x)
 sFunction evaluates a cubic s-function. More...
 
PIC_INLINE float sCurve5 (float x)
 sCurve5 evaluates a quintic S-Shape: 6x^5-15x^4+10x^3 More...
 
PIC_INLINE float square (float x)
 Square applies square function to a value. More...
 
PIC_INLINE float sqrtf_s (float x)
 sqrtf_s More...
 
template<class T >
PIC_INLINEClamp (T x, T a, T b)
 Clamp clamps a value, x, in the bound [a,b]. More...
 
PIC_INLINE long lround (double x)
 lround rounds double numbers properly. More...
 
PIC_INLINE float lround (float x)
 lround rounds float numbers properly. More...
 
PIC_INLINE float lerp (float t, float x0, float x1)
 lerp evaluates linear interpolation More...
 
PIC_INLINE float SmoothStep (float a, float b, float value)
 SmoothStep smoothes a value from a to b using a cube S-Shape. More...
 
float Deg2Rad (float deg)
 Deg2Rad converts angles expressed in degrees into angles expressed in radians. More...
 
PIC_INLINE float Rad2Deg (float rad)
 Rad2Deg converts angles expressed in radians into angles expressed in degrees. More...
 
PIC_INLINE int log2 (int n)
 log2 computes logarithm in base 2 for integers. More...
 
PIC_INLINE int pow2 (int n)
 pow2 computes 2^n. More...
 
PIC_INLINE float log10PlusOne (float x)
 logf10PlusOne computes log10 of a value plus 1. More...
 
PIC_INLINE float expfMinusOne (float x)
 expMinusOne More...
 
PIC_INLINE float log10fPlusEpsilon (float x)
 log10fPlusEpsilon More...
 
PIC_INLINE float powf10fMinusEpsilon (float x)
 powf10fMinusEpsilon More...
 
PIC_INLINE float log2f (float x)
 log2f logarithm in base 2 for floating point More...
 
PIC_INLINE double log2 (double x)
 log2 More...
 
PIC_INLINE float log2fPlusEpsilon (float x)
 log2fPlusEpsilon More...
 
PIC_INLINE float pow2f (float x)
 pow2f More...
 
PIC_INLINE int powint (int x, int b)
 powint computes power function for integer values. More...
 
PIC_INLINE void getRandomPermutation (std::mt19937 &m, unsigned int *perm, unsigned int nPerm, unsigned int n)
 getRandomPermutation computes a random permutation. More...
 
PIC_INLINE float normalDistribution (float x, float mu=0.0f, float sigma=1.0f)
 normalDistribution More...
 
float normalCDF (float x, float mu, float sigma)
 normalCDF More...
 
PIC_INLINE float betaFunction (float A, float B, float step=1e-4)
 betaFunction More...
 
PIC_INLINE float betaPDFwithBeta (float x, float A, float B, float betaAB)
 betaPDFwithBeta More...
 
PIC_INLINE float betaPDF (float x, float A, float B)
 betaPDF More...
 
PIC_INLINE float sigmoid (float x)
 sigmoid More...
 
PIC_INLINE float sigmoidInv (float x)
 sigmoidInv More...
 
PIC_INLINE float simple8bitWithGamma (float x)
 simple8bitWithGamma More...
 
float randU ()
 randU computes a random number in [0, 1[ using the classic rand(). More...
 
float PoissonRadius (int nSamples)
 PoissonRadius estimates the radius of a Poisson-disk like distribution using nSmaples. More...
 
PIC_INLINE void convertFromEigenToPolyLine (std::vector< Eigen::Vector2i > &in, Polyline2i &out)
 convertFromEigenToPolyLine More...
 
PIC_INLINE void drawLine (Image *img, Vec2i v0, Vec2i v1, float *color)
 drawLine renders a line (v0, v1) with color into img. More...
 
PIC_INLINE void drawPoints (Image *img, std::vector< Eigen::Vector2f > &points, float *color)
 drawPoints More...
 
PIC_INLINE void evaluateGaussian (Image *img, float sigma=-1.0f, bool bNormTerm=false)
 evaluateGaussian renders a Gaussian function which is centred in the image. More...
 
PIC_INLINE void evaluateSolid (Image *img)
 evaluateSolid renders a centred circle. More...
 
template<class T >
void filterInliers (std::vector< T > &vec, std::vector< unsigned int > &inliers, std::vector< T > &vecOut)
 filterInliers More...
 
template<class T >
void stdVectorClear (std::vector< T *> &vec)
 stdVectorClear More...
 
template<class T >
void stdVectorArrayClear (std::vector< T *> &vec)
 stdVectorArrayClear More...
 
template<class T >
void setToANullVector (std::vector< T * > &vec, unsigned int n)
 setToANullVector More...
 
template<class T >
T * releasePtr (T *data)
 release More...
 
template<class T >
T * delete_s (T *data)
 delete_s More...
 
template<class T >
T * delete_vec_s (T *data)
 delete_vec_s More...
 
std::string stdStringRep (std::string str, std::string strSub, std::string strRep)
 stdStringRep replaces strSub in str with strRep just once. More...
 
std::string stdStringRepAll (std::string str, std::string strSub, std::string strRep)
 stdStringRepAll replaces all strSub in str with strRep. More...
 
template<class T >
std::string fromNumberToString (T num)
 fromNumberToString converts a number into a string. More...
 
char getSeparatorChar (std::string path)
 getSeparatorChar returns the folder separator in path as a char. More...
 
std::string removeExtension (std::string name)
 RemoveExtension removes the extension of a string. More...
 
std::string removeLocalPath (std::string name)
 removeLocalPath removes the local path of a string. More...
 
std::string getFileNameOnly (std::string name)
 getFileNameOnly More...
 
std::string getExtension (std::string name)
 getExtension gets the extension of a file name. More...
 
std::string addSuffix (std::string name, std::string suffix)
 addSuffix adds a suffix to a file name. More...
 
std::string replaceExtension (std::string nameOut, std::string fmtIn, std::string fmtOut)
 replaceExtension changes .format in a file name. More...
 
int countSubString (std::string str, std::string subStr)
 countSubString counts how many subStr are in str. More...
 
std::string getLocaDirectory (std::string path)
 getLocaDirectory gets local path. More...
 
std::string getSeparator (std::string path)
 getSeparator returns the folder separator in path as a string More...
 
std::string getFolderName (std::string path)
 getFolderName gets the folder name from the path. More...
 
std::string getFileName (std::string path)
 getFileName gets the file name. More...
 
void parseStringToStdVector (std::string str, char delim, StringVec *str_vec)
 parseStringToStdVector More...
 
std::string genBilString (std::string type, float sigma_s, float sigma_r)
 genBilString More...
 
std::string fromFileToStdString (std::string nameFile)
 fromFileToStdString writes a file into a std::string. More...
 
bool checkAbsolutePath (std::string path)
 checkAbsolutePath checks if the path is absolute or not. More...
 
char * fromStdStringToChar (std::string str)
 fromStdStringToChar converts from a std::string to a char*. More...
 
std::string checkPath (std::string name)
 checkPath More...
 
std::string adjustPath (std::string nameFile, std::string pathFolder)
 adjustPath modifies the path if it is not global. More...
 
std::string removeInitialSpaces (char name[])
 removeInitialSpaces removes spaces at the beginning of a string. More...
 
template<uint N>
PIC_INLINE bool insideVecBBox (const Vec< N, float > &sample)
 insideVecBBox More...
 
template<uint N>
PIC_INLINE Vec< N, float > normalize (Vec< N, float > x)
 
template<uint N>
PIC_INLINE Vec< N, float > randomPoint (std::mt19937 *m)
 randomPoint More...
 
template<uint N>
void vecrint (Vec< N, float > &ret)
 
template<uint N>
PIC_INLINE Vec< N, float > annulusSampling (std::mt19937 *m, Vec< N, float > center, float radius)
 annulusSampling More...
 
template<uint N>
void vecGamma (Vec< N, float > &ret, float g)
 
template<uint N>
void vecSqrt (Vec< N, float > &ret)
 
template<uint N>
Vec< N, float > vecValOver (Vec< N, float > &in, float value)
 
template<uint N, class T >
void transferFromVecToPlain (std::vector< Vec< N, T > > &in, std::vector< T > &out)
 
template<uint N, class T >
void transferFromPlainToVec (std::vector< T > &in, std::vector< Vec< N, T > > &out)
 
PIC_INLINE void warpSquareCircle (float x, float y, float *xo, float *yo)
 warpSquareCircle warps from a square to a circle distribution. More...
 
PIC_INLINE float warpNormalDistribution (float u0, float u1)
 warpNormalDistribution warps from uniform distribution to a normal distribution More...
 
PIC_INLINE float warpGaussianDistribution (float u0, float u1, float mu, float sigma)
 warpGaussianDistribution More...
 

Variables

const Color3 RED = Color3(1.0f, 0.0f, 0.0f)
 
const Color3 GREEN = Color3(0.0f, 1.0f, 0.0f)
 
const Color3 BLUE = Color3(0.0f, 0.0f, 1.0f)
 
const Color3 BLACK = Color3(0.0f, 0.0f, 0.0f)
 
const Color3 WHITE = Color3(1.0f, 1.0f, 1.0f)
 
const float mtxRGBtoXYZ []
 
const float mtxXYZtoRGB []
 
const float C_SIX_OVER_TWENTY_NINE = 0.20689655172413793103448275862069f
 
const float C_SIX_OVER_TWENTY_NINE_CUBIC = 0.00885645167903563081717167575546f
 
const float C_CIELAB_C1 = 7.787037037037037037037037037037f
 
const float C_CIELAB_C1_INV = 0.12841854934601664684898929845422f
 
const float C_FOUR_OVER_TWENTY_NINE = 0.13793103448275862068965517241379f
 
const float mtxXYZtoLMS []
 
const float mtxLMStoXYZ []
 
const double C_SINGULARITY = 1e-6
 
const double C_LARGE_DIFFERENCES = 1e6
 
const float C_LARGE_DIFFERENCESf = 1e6f
 
float C_PU_x [256]
 
float C_PU_y [256]
 
const int CONST_DARTTHROWING = 5000
 
const float C_LOG_NAT_2 = 0.69314718055994530941723212145818f
 
const float C_INV_LOG_NAT_2 = 1.4426950408889634073599246810019f
 
const double C_INV_LOG_NAT_2_D = 1.4426950408889634073599246810019
 
const float C_EPSILON = 1e-6f
 
const float C_SQRT_2 = 1.4142135623730950488016887242097f
 
const float C_PI_025 = 0.78539816339744830961566084581988f
 
const float C_PI_05 = 1.5707963267948966192313216916398f
 
const float C_PI = 3.1415926535897932384626433832795f
 
const float C_PI_2 = 6.283185307179586476925286766559f
 
const float C_INV_PI_2 = 0.159154943091895335768883763f
 
const float C_PI_4 = 12.566370614359172953850573533118f
 
const float C_INV_PI_4 = 0.07957747154594766788444188168626f
 
const float C_PI_2_2 = 19.739208802178717237668981999752f
 
const float C_INV_PI = 0.31830988618379067153776526745f
 
const float C_ONE_80_OVER_PI = 57.295779513082320876798154814105f
 
const float C_PI_OVER_ONE_80 = 0.017453292519943295769236907685f
 
const float POISSON_RHO = 0.75f
 

Detailed Description

Note:

Typedef Documentation

◆ Arrayf

typedef Array<float> pic::Arrayf

Arrayf.

◆ Arrayi

typedef Array<int> pic::Arrayi

Arrayi.

◆ Arrayui

typedef Array<unsigned int> pic::Arrayui

Arrayui.

◆ BufferOperatorsGL

typedef std::vector<BufferOpGL*> pic::BufferOperatorsGL

◆ Color3

typedef Vec<3, float> pic::Color3

Color3.

◆ complexd

typedef std::complex<double> pic::complexd

complexd

◆ complexf

typedef std::complex<float> pic::complexf

complexf

◆ DeepImage

◆ EXRAttribute

◆ EXRImage

typedef struct pic::_EXRImage pic::EXRImage

◆ ImageGLVec

typedef std::vector<ImageGL*> pic::ImageGLVec

ImageGLVec an std::vector of pic::ImageGL.

◆ ImageVec

typedef std::vector<Image *> pic::ImageVec

ImageVec an std::vector of pic::Image.

◆ IndexedArrayf

◆ IndexedArrayi

◆ IndexedArrayui

typedef IndexedArray<unsigned int> pic::IndexedArrayui

◆ IntCoord

typedef std::vector<int> pic::IntCoord

IntCoord.

◆ Polyline2i

typedef Polyline<2, int> pic::Polyline2i

Polyline2i.

◆ puchar

typedef uchar* pic::puchar

◆ puint

typedef uint* pic::puint

◆ ReduxOperatorsGL

typedef std::vector<ReduxGL*> pic::ReduxOperatorsGL

◆ StringVec

typedef std::vector<std::string > pic::StringVec

StringVec is an std::vector of std::string.

◆ uchar

typedef unsigned char pic::uchar

◆ uint

typedef unsigned int pic::uint

◆ Vec2f

typedef Vec<2, float> pic::Vec2f

Vec2f.

◆ Vec2i

typedef Vec<2, int> pic::Vec2i

Vec2i.

◆ Vec3f

typedef Vec<3, float> pic::Vec3f

Vec3f.

◆ Vec3i

typedef Vec<3, int> pic::Vec3i

Vec3i.

◆ Vec4i

typedef Vec<4, int> pic::Vec4i

Vec4i.

Enumeration Type Documentation

◆ BF_TYPE

Enumerator
BF_CLASSIC 
BF_CROSS 
BF_BRUSH 

◆ BOGL

enum pic::BOGL
Enumerator
BOGL_ADD 
BOGL_SUB 
BOGL_MUL 
BOGL_DIV 
BOGL_ADD_CONST 
BOGL_SUB_CONST 
BOGL_MUL_CONST 
BOGL_DIV_CONST 
BOGL_ADD_S 
BOGL_SUB_S 
BOGL_MUL_S 
BOGL_DIV_S 
BOGL_CLAMP 
BOGL_ID 
BOGL_ID_CONST 

◆ CORENE_DETECTOR_TYPE

Enumerator
CD_SHI_TOMASI 
CD_HARRIS 
CD_NOBLE 

◆ CRF_WEIGHT

The CRF_WEIGHT enum.

Enumerator
CW_ALL 
CW_HAT 
CW_DEB97 
CW_DEB97p01 
CW_ROBERTSON 

◆ GRADIENT_TYPE

Enumerator
G_SOBEL 
G_PREWITT 
G_NORMAL 

◆ HDR_REC_DOMAIN

The HDR_REC_DOMAIN enum HRD_LOG: assembling HDR image in the log-domain.

HRD_LIN: assembling HDR image in the linear domain

HRD_SQ: assembling HDR image in the linear domain with t^2 trick for reducing noise [Robertson et al.]

Enumerator
HRD_LOG 
HRD_LIN 
HRD_SQ 

◆ HDRAlign

Enumerator
HA_NONE 
HA_MTB 
HA_FEATURES 

◆ IMAGESTORE

Enumerator
IMG_GPU_CPU 
IMG_CPU_GPU 
IMG_CPU 
IMG_GPU 
IMG_NULL 

◆ IMG_LIN

Enumerator
IL_LIN 
IL_2_2 
IL_LUT_8_BIT 
IL_POLYNOMIAL 

◆ LABEL_IO_EXTENSION

Enumerator
IO_TMP 
IO_PFM 
IO_HDR 
IO_EXR 
IO_VOL 
IO_BMP 
IO_PPM 
IO_TGA 
IO_JPG 
IO_PNG 
IO_PGM 
IO_NULL 

◆ LDR_type

The LDR_type enum.

Enumerator
LT_NOR 
LT_NOR_GAMMA 
LT_LDR 
LT_NONE 

◆ LUMINANCE_TYPE

Enumerator
LT_CIE_LUMINANCE 
LT_LUMA 
LT_WARD_LUMINANCE 
LT_MEAN 

◆ METRICS_DOMAIN

Enumerator
MD_LIN 
MD_LOG10 
MD_PU 

◆ MULTI_EXPOSURE_TYPE

Enumerator
MET_HISTOGRAM 
MET_MIN_MAX 
MET_FROM_INPUT 

◆ RAW_type

Enumerator
RAW_U16_RGGB 
RAW_U8_RGGB 
RAW_DOUBLE 
RAW_FLOAT 

◆ REDGL

enum pic::REDGL
Enumerator
REDGL_MIN 
REDGL_MAX 
REDGL_SUM 
REDGL_MEAN 
REDGL_LOG_MEAN 

◆ SAMPLER_TYPE

Enumerator
ST_BRIDSON 
ST_DARTTHROWING 
ST_PATTERN 
ST_MONTECARLO 
ST_MONTECARLO_S 

◆ SIGMOID_MODE

Enumerator
SIG_TMO 
SIG_TMO_WP 
SIG_SDM 

◆ VALUE_SPACE

Enumerator
VS_LDR 
VS_LIN 
VS_LOG_2 
VS_LOG_E 
VS_LOG_10 

Function Documentation

◆ addOne() [1/3]

PIC_INLINE Eigen::Vector3f pic::addOne ( Eigen::Vector2f &  x)

addOne

Parameters
x
Returns

◆ addOne() [2/3]

PIC_INLINE Eigen::Vector3d pic::addOne ( Eigen::Vector2d &  x)

addOne

Parameters
x
Returns

◆ addOne() [3/3]

PIC_INLINE Eigen::Vector4d pic::addOne ( Eigen::Vector3d &  x)

addOne

Parameters
x
Returns

◆ addSuffix()

std::string pic::addSuffix ( std::string  name,
std::string  suffix 
)
inline

addSuffix adds a suffix to a file name.

Parameters
name
suffix
Returns

◆ adjustPath()

std::string pic::adjustPath ( std::string  nameFile,
std::string  pathFolder 
)

adjustPath modifies the path if it is not global.

Parameters
nameFile
pathFolder
Returns

◆ alignPanoramicLL()

PIC_INLINE void pic::alignPanoramicLL ( Eigen::Matrix3d &  R0,
Eigen::Vector3d &  t0,
Eigen::Matrix3d &  R1,
Eigen::Vector3d &  t1,
Eigen::Matrix3d &  R01,
Eigen::Vector3d &  t01 
)

alignPanoramicLL

Parameters
R0
t0
R1
t1
R01
t01

◆ annulusSampling()

template<uint N>
PIC_INLINE Vec<N, float> pic::annulusSampling ( std::mt19937 *  m,
Vec< N, float >  center,
float  radius 
)

annulusSampling

Parameters
m
center
radius
Returns

◆ applyWhiteBalanceJNI()

PIC_INLINE int pic::applyWhiteBalanceJNI ( std::string  imageInPath,
std::string  imageOutPath,
int  x,
int  y,
bool  bRobust = false 
)

applyWhiteBalanceJNI

Parameters
imageInPath
imageOutPath
x
y
bRobust
Returns

◆ betaFunction()

PIC_INLINE float pic::betaFunction ( float  A,
float  B,
float  step = 1e-4 
)

betaFunction

Parameters
A
B
Returns

◆ betaPDF()

PIC_INLINE float pic::betaPDF ( float  x,
float  A,
float  B 
)

betaPDF

Parameters
x
A
B
Returns

◆ betaPDFwithBeta()

PIC_INLINE float pic::betaPDFwithBeta ( float  x,
float  A,
float  B,
float  betaAB 
)

betaPDFwithBeta

Parameters
x
A
B
betaAB
Returns

◆ Bicubic()

float pic::Bicubic ( float  x)
inline

Bicubic.

Parameters
x
Returns

◆ bilateralSeparation()

PIC_INLINE void pic::bilateralSeparation ( Image imgIn,
ImageVec out,
float  sigma_s = -1.0f,
float  sigma_r = 0.4f,
bool  bLogDomain = false 
)

bilateralSeparation

Parameters
imgIn
out
sigma_s
sigma_r
bLogDomain

◆ Bilinear()

template<class Scalar >
Scalar pic::Bilinear ( Scalar  a,
Scalar  b,
Scalar  c,
Scalar  d,
float  x,
float  y 
)
inline

Bilinear calculates 2D bilinear interpolation at the point (x,y).

Parameters
ais the NW pixel value.
bis the NE pixel value.
cis the SW pixel value.
dis the SE pixel value.
xis the horizontal coordinate.
yis the vertical coordinate.
Returns
the evaluation of the B-spline.

◆ binarization()

PIC_INLINE Image* pic::binarization ( Image imgIn,
Image imgOut = NULL,
bool  bAdaptive = false 
)

binarization

Parameters
imgIn
bAdaptive
Returns

◆ BitmapPadding()

int pic::BitmapPadding ( int  bpp,
int  width 
)
inline

BitmapPadding (SYSTEM: X POS Y POS).

Parameters
bpp
width
Returns

◆ bitReversal()

PIC_INLINE unsigned int pic::bitReversal ( unsigned int  n,
unsigned int  nbit 
)

bitReversal

Parameters
n
nbit
Returns

◆ cameraMatrixProject() [1/2]

PIC_INLINE Eigen::Vector2i pic::cameraMatrixProject ( Eigen::Matrix34d &  M,
Eigen::Vector4d &  p 
)

cameraMatrixProject projects a point, p, using the camera matrix, M.

Parameters
M
pis a 3D point encoded in homogenous coordinate (4D vector)
Returns

◆ cameraMatrixProject() [2/2]

PIC_INLINE Eigen::Vector2i pic::cameraMatrixProject ( Eigen::Matrix34d &  M,
Eigen::Vector3d &  p 
)

cameraMatrixProject projects a point, p, using the camera matrix, M.

Parameters
M
pis a 3D point (3D vector)
Returns

◆ cameraMatrixProjection()

PIC_INLINE Eigen::Vector2i pic::cameraMatrixProjection ( Eigen::Matrix34d &  M,
Eigen::Vector3d &  p,
double  cx,
double  cy,
double  fx,
double  fy,
double  lambda 
)

cameraMatrixProjection

Parameters
M
p
cx
cy
fx
fy
lambda
Returns

◆ cameraRectify() [1/2]

PIC_INLINE void pic::cameraRectify ( Eigen::Matrix3d &  K0,
Eigen::Matrix3d &  R0,
Eigen::Vector3d &  t0,
Eigen::Matrix3d &  K1,
Eigen::Matrix3d &  R1,
Eigen::Vector3d &  t1,
Eigen::Matrix34d &  P0_out,
Eigen::Matrix34d &  P1_out,
Eigen::Matrix3d &  T0,
Eigen::Matrix3d &  T1 
)

cameraRectify

Parameters
K0intrisic matrix of view0
R0rotation matrix of view0
t0translation vector of view0
K1intrisic matrix of view1
R1rotation matrix of view1
t1translation vector of view1
P0new camera matrix of view0
P1new camera matrix of view1
T0transformation matrix for view0
T1transformation matrix for view1

◆ cameraRectify() [2/2]

PIC_INLINE void pic::cameraRectify ( Eigen::Matrix34d &  P0_in,
Eigen::Matrix34d &  P1_in,
Eigen::Matrix34d &  P0_out,
Eigen::Matrix34d &  P1_out,
Eigen::Matrix3d &  T0,
Eigen::Matrix3d &  T1 
)

cameraRectify

Parameters
P0_in
P1_in
P0_out
P1_out
T0
T1

◆ CatmullRom()

float pic::CatmullRom ( float  x)
inline

CatmullRom.

Parameters
x
Returns

◆ changeDomain()

float pic::changeDomain ( float  x,
METRICS_DOMAIN  type = MD_LIN 
)

changeDomain

Parameters
x
type
Returns

◆ checkAbsolutePath()

bool pic::checkAbsolutePath ( std::string  path)
inline

checkAbsolutePath checks if the path is absolute or not.

Parameters
path
Returns

◆ checkNeighborsBruteForce()

template<unsigned int N>
bool pic::checkNeighborsBruteForce ( std::vector< Vec< N, float > > &  samples,
Vec< N, float >  x,
float  radius 
)

checkNeighborsBruteForce

Parameters
samples
x
radius
Returns

◆ checkNormalized()

PIC_INLINE bool pic::checkNormalized ( const float *  data,
int  size,
float  delta = 1e-6f 
)

checkNormalized checks if data is in [0,1].

Parameters
data
size
delta
Returns

◆ checkPath()

std::string pic::checkPath ( std::string  name)
inline

checkPath

Parameters
name
Returns

◆ checkTag()

bool pic::checkTag ( unsigned char  tag[2],
unsigned short  tag_r,
bool  bMotorola 
)

checkTag

Parameters
tag
tag_r
bMotorola
Returns

◆ Clamp()

template<class T >
PIC_INLINE T pic::Clamp ( x,
a,
b 
)

Clamp clamps a value, x, in the bound [a,b].

Parameters
x
a
b
Returns

◆ colorLuminance()

template<uint N>
float pic::colorLuminance ( Vec< N, float > &  in)

colorLuminance

Parameters
in
Returns

◆ colorSaturate()

template<uint N>
void pic::colorSaturate ( Vec< N, float > &  in)

colorSaturate

Parameters
in

◆ computeColorClassification()

PIC_INLINE bool* pic::computeColorClassification ( Image img,
float *  white_pixel,
float *  color_samples,
int  nSamples,
int  nDim,
float  variance 
)

computeColorClassification

Parameters
img
white_pixel
color_samples
nSamples
nDim
variance_colors
Returns

◆ computeEpipole()

PIC_INLINE Eigen::Vector3d pic::computeEpipole ( Eigen::Matrix3d &  F)

computeEpipole computes the epipole of a fundamental matrix F.

Parameters
Fis a fundamental matrix.
Returns
It returns the epipole of F.

◆ computeEssentialMatrix() [1/2]

PIC_INLINE Eigen::Matrix3d pic::computeEssentialMatrix ( Eigen::Matrix3d &  F,
Eigen::Matrix3d &  K1,
Eigen::Matrix3d &  K2 
)

computeEssentialMatrix computes the essential matrix, E, from the fundamental matrix, F12, and the two intrics matrices K1 and K2

Parameters
Fis the fundamental matrix which maps points from camera 1 into camera 2
K1is the camera 1 intrics matrix
K2is the camera 2 intrics matrix
Returns

◆ computeEssentialMatrix() [2/2]

PIC_INLINE Eigen::Matrix3d pic::computeEssentialMatrix ( Eigen::Matrix3d &  F,
Eigen::Matrix3d &  K 
)

computeEssentialMatrix computes the essential matrix, E, from the fundamental matrix, F, and a single instrics camera, K.

Parameters
F
K
Returns

◆ computeImageRectification() [1/2]

PIC_INLINE ImageVec* pic::computeImageRectification ( Image img0,
Image img1,
Eigen::Matrix34d &  M0,
Eigen::Matrix34d &  M1,
ImageVec out = NULL,
bool  bPartial = true 
)

computeImageRectification this function rectifies two images

Parameters
img0is the first image to rectify
img1is the second image to rectify
M0is the camera matrix (3x4) of img0
M1is the camera matrix (3x4) of img1
outis the output as an ImageVec with two images; i.e., rectified versions of img0 and img1
Returns
is the output as an ImageVec with two images; i.e., rectified versions of img0 and img1

◆ computeImageRectification() [2/2]

PIC_INLINE ImageVec* pic::computeImageRectification ( Image img0,
Image img1,
Eigen::Matrix3d &  K0,
Eigen::Matrix3d &  R0,
Eigen::Vector3d &  t0,
Eigen::Matrix3d &  K1,
Eigen::Matrix3d &  R1,
Eigen::Vector3d &  t1,
ImageVec out = NULL,
bool  bPartial = true 
)

computeImageRectification this function rectifies two images

Parameters
img0is the first image to rectify
img1is the second image to rectify
K0is the intrisic matrix of img0
R0is the rotation matrix of img0
t0is the translation vector of img0
K1is the intrisic matrix of im1
R1is the rotation matrix of img1
t1is the translation vector of img1
outis the output as an ImageVec with two images; i.e., rectified versions of img0 and img1
Returns
is the output as an ImageVec with two images; i.e., rectified versions of img0 and img1

◆ computeImageRectificationPanoramicLL()

PIC_INLINE ImageVec* pic::computeImageRectificationPanoramicLL ( Image img0,
Image img1,
Eigen::Matrix3d &  R01,
Eigen::Vector3d &  t01,
ImageVec out = NULL 
)

computeImageRectificationPanoramicLL

Parameters
img0
img1
R01
t01
out
Returns

◆ computeImageRectificationWarp()

PIC_INLINE ImageVec* pic::computeImageRectificationWarp ( Image img0,
Image img1,
Eigen::Matrix3d &  T0,
Eigen::Matrix3d &  T1,
ImageVec out,
bool  bPartial = true 
)

computeImageRectificationWarp

Parameters
img0is the first image to rectify
img1is the second image to rectify
T0is the homography for img0
T1is the homography for img0
outis the output as an ImageVec with two images; i.e., rectified versions of img0 and img1
Returns

◆ ComputeNormalizationTransform()

PIC_INLINE Eigen::Vector3f pic::ComputeNormalizationTransform ( std::vector< Eigen::Vector2f > &  points)

ComputeNormalizationTransform.

Parameters
points
Returns

◆ computePoissonImageEditing()

PIC_INLINE Image* pic::computePoissonImageEditing ( Image source,
Image target,
bool *  mask,
Image ret = NULL 
)

computePoissonImageEditing

Parameters
source
target
mask
ret
Returns

◆ computePoissonSolver()

PIC_INLINE Image* pic::computePoissonSolver ( Image f,
Image ret = NULL 
)

computePoissonSolver

Parameters
f
ret
Returns

◆ computePoissonSolverIterative()

PIC_INLINE Image* pic::computePoissonSolverIterative ( Image img,
Image laplacian,
std::vector< int >  coords,
int  maxSteps = 100 
)

computePoissonSolverIterative

Parameters
img
laplacian
coords
maxSteps
Returns

◆ computeSaturation()

PIC_INLINE float pic::computeSaturation ( float *  data,
int  channels = 3 
)

computeSaturation

Parameters
data
channels
Returns

◆ ConvertDetect()

PIC_INLINE void pic::ConvertDetect ( std::string  nameDirectory,
std::string  format,
int  width,
int  height 
)

ConvertDetect.

Parameters
nameDirectory
format
width
height

◆ convertFloatEndianess()

PIC_INLINE float pic::convertFloatEndianess ( float  value)

convertFloatEndianess converts a float from little-endian to big-endian or viceversa.

Parameters
valueis the input float to be converted.
Returns
It returns a big-endian float if value was stored as little-endian. Otherwise, it rerturns a little-endian.

◆ convertFromEigenToPolyLine()

PIC_INLINE void pic::convertFromEigenToPolyLine ( std::vector< Eigen::Vector2i > &  in,
Polyline2i out 
)

convertFromEigenToPolyLine

Parameters
in
out

◆ convertFromEigenToVec()

PIC_INLINE Vec2i pic::convertFromEigenToVec ( Eigen::Vector2i &  x)

convertFromEigenToVec

Parameters
x

◆ convertHDR2LDR()

PIC_INLINE unsigned char* pic::convertHDR2LDR ( const float *  dataIn,
unsigned char *  dataOut,
int  size,
LDR_type  type,
float  gamma = 2.2f 
)

convertHDR2LDR converts a buffer of float into unsigned char.

Parameters
dataIn
dataOut
size
type
gamma
Returns

◆ convertLDR2HDR()

PIC_INLINE float* pic::convertLDR2HDR ( unsigned char *  dataIn,
float *  dataOut,
int  size,
LDR_type  type,
float  gamma = 2.2f 
)

convertLDR2HDR converts a buffer of unsigned char into float.

Parameters
dataIn
dataOut
size
type
gamma
Returns

◆ ConvertRAWtoImages()

PIC_INLINE void pic::ConvertRAWtoImages ( std::string  nameDirectory,
std::string  format,
int  width,
int  height 
)

ConvertRAWtoImages converts .RAW into format.

Parameters
nameDirectory
format
width
height

◆ convertToLDR()

template<uint N>
Vec<N, float> pic::convertToLDR ( Vec< N, float > &  in,
float  exposure = 1.0f,
float  gammaCor = 2.2f,
float  maxVal = 255.0f 
)

convertToLDR

Parameters
in
exposure
gammaCor
maxVal
Returns

◆ ConvertVectorToPlus1()

template<unsigned int N>
PIC_INLINE void pic::ConvertVectorToPlus1 ( std::vector< RandomSampler< N > > &  rsVec,
RandomSampler< N+1 > &  rsOut 
)

◆ countSubString()

int pic::countSubString ( std::string  str,
std::string  subStr 
)
inline

countSubString counts how many subStr are in str.

Parameters
stris the input string.
subStris the substring to count in str.
Returns
the number of times subStr appears in str.

◆ createMatrixFromPrimaries()

float* pic::createMatrixFromPrimaries ( float *  red_XYZ,
float *  green_XYZ,
float *  blue_XYZ,
float *  white_point_XYZ,
float *  ret = NULL 
)

createMatrixFromPrimaries computes a matrix for converting XYZ values into the defined color space (i.e., by defining the three primaries: red, green, and blue).

Parameters
red_XYZis the XYZ values of the red primary
green_XYZis the XYZ values of the green primary
blue_XYZis the XYZ values of the blue primary
white_point_XYZis the XYZ values of the white point primary
Returns
It returns a 3x3 matrix for converting XYZ values into the defined color space

◆ CrossProduct()

PIC_INLINE Eigen::Matrix3d pic::CrossProduct ( Eigen::Vector3d &  t)

CrossProduct computes a cross product matrix from a vector.

Parameters
ta translation vector
Returns
It returns a cross product matrix.

◆ decomposeCameraMatrix()

PIC_INLINE void pic::decomposeCameraMatrix ( Eigen::Matrix34d &  P,
Eigen::Matrix3d &  K,
Eigen::Matrix3d &  R,
Eigen::Vector3d &  t 
)

decomposeCameraMatrix

Parameters
P
K
R
t

◆ decomposeEssentialMatrix()

PIC_INLINE void pic::decomposeEssentialMatrix ( Eigen::Matrix3d &  E,
Eigen::Matrix3d &  R1,
Eigen::Matrix3d &  R2,
Eigen::Vector3d &  t 
)

decomposeEssentialMatrix decomposes an essential matrix E.

Parameters
Eis the essential matrix. Input. Note1: E = S * R Note2: S = [t]_x Note3: there are four possible cases: 1: [R1 | t] 2: [R1 | -t] 3: [R2 | t] 4: [R2 | -t]
R1is one possible rotation matrix. Output.
R2is one possible rotation matrix. Output.
tis the translation vector which is not normalized. Output.

◆ decomposeEssentialMatrixWithConfiguration()

PIC_INLINE bool pic::decomposeEssentialMatrixWithConfiguration ( Eigen::Matrix3d &  E,
Eigen::Matrix3d &  K0,
Eigen::Matrix3d &  K1,
std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1,
Eigen::Matrix3d &  R,
Eigen::Vector3d &  t 
)

decomposeEssentialMatrixWithConfiguration decomposes an essential matrix E.

Parameters
Eis the essential matrix.
K0
K1
points0
points1
R
t
Returns

◆ Deg2Rad()

float pic::Deg2Rad ( float  deg)
inline

Deg2Rad converts angles expressed in degrees into angles expressed in radians.

Parameters
degis a value of an angle expressed in degrees.
Returns
It returns an ang expressed in radians.

◆ delete_s()

template<class T >
T* pic::delete_s ( T *  data)
inline

delete_s

Parameters
data
Returns

◆ delete_vec_s()

template<class T >
T* pic::delete_vec_s ( T *  data)
inline

delete_vec_s

Parameters
data
Returns

◆ DFT1D()

PIC_INLINE float* pic::DFT1D ( float *  in,
unsigned int  n,
float *  out = NULL 
)

DFT1D.

Parameters
in
n
out
Returns

◆ DiagonalMatrix()

PIC_INLINE Eigen::Matrix3d pic::DiagonalMatrix ( Eigen::Vector3d  D)

DiagonalMatrix creates a diagonal matrix.

Parameters
Da vector of size 3.
Returns
It returns a diagonal matrix.

◆ Double()

PIC_INLINE ImageVec pic::Double ( Image img1,
Image img2 
)

Double creates an std::vector which contains img1 and img2; this is for filters input.

Parameters
img1is a pointer to a pic::Image
img2is a pointer to a pic::Image
Returns
It returns an std::vector which contains img1 and img2.

◆ DoubleGL()

PIC_INLINE ImageGLVec pic::DoubleGL ( ImageGL img1,
ImageGL img2 
)

DoubleGL creates a couple for filters input.

Parameters
img1
img2
Returns

◆ drawLine()

PIC_INLINE void pic::drawLine ( Image img,
Vec2i  v0,
Vec2i  v1,
float *  color 
)

drawLine renders a line (v0, v1) with color into img.

Parameters
imgis the image where to render the line (v0, v1).
v0is the first vertex of the line.
v1is the second vertex of the line.
coloris the color of the line (v0, v1).

◆ drawPoints()

PIC_INLINE void pic::drawPoints ( Image img,
std::vector< Eigen::Vector2f > &  points,
float *  color 
)

drawPoints

Parameters
img
points

◆ equalf()

PIC_INLINE bool pic::equalf ( float  a,
float  b 
)

equalf checks if two float values are the same or not.

Parameters
ais the first value to be checked.
bis the second value to be checked.
Returns
This function returns true if a and b are similar, false otherwise.

◆ estimateAverageLuminance()

PIC_INLINE float pic::estimateAverageLuminance ( float  shutter_speed,
float  aperture_value = 1.0f,
float  iso_value = 1.0f,
float  K_value = 12.5f 
)

estimateAverageLuminance estimates the average luminance of the shot.

Parameters
shutter_speedis the shutter speed of the camera
aperture_valueis the aperture value of the camera
iso_valueis the ISO value of the camera
K_valueis a value in [10.6, 13.4] depending on the camera
Returns

◆ estimateCheckerBoardSize()

PIC_INLINE float pic::estimateCheckerBoardSize ( std::vector< Eigen::Vector2f > &  points)

estimateCheckerBoardSize

Parameters
points
Returns

◆ estimateCheckerBoardSizeCross()

PIC_INLINE float pic::estimateCheckerBoardSizeCross ( std::vector< Eigen::Vector2f > &  points)

estimateCheckerBoardSizeCross

Parameters
points
Returns

◆ estimateCoordinatesWhitePointFromCheckerBoard()

PIC_INLINE Eigen::Vector2f pic::estimateCoordinatesWhitePointFromCheckerBoard ( Image img,
std::vector< Eigen::Vector2f > &  corners_model,
int  checkerBoardSizeX = 4,
int  checkerBoardSizeY = 6 
)

estimateCoordinatesWhitePointFromCheckerBoard

Parameters
img
corners_model
checkerBoardSizeX
checkerBoardSizeY
Returns

◆ estimateFundamental()

PIC_INLINE Eigen::Matrix3d pic::estimateFundamental ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1 
)

estimateFundamental estimates the foundamental matrix between image 1 to image 2

Parameters
points0is an array of points computed from image 1.
points1is an array of points computed from image 2.
Returns
It returns the fundamental matrix, F_{1,2}.

◆ estimateFundamentalFromImages()

PIC_INLINE Eigen::Matrix3d pic::estimateFundamentalFromImages ( Image img0,
Image img1,
std::vector< Eigen::Vector2f > &  m0,
std::vector< Eigen::Vector2f > &  m1,
std::vector< unsigned int > &  inliers 
)

estimateFundamentalFromImages

Parameters
img0
img1
Returns

◆ estimateFundamentalRansac()

PIC_INLINE Eigen::Matrix3d pic::estimateFundamentalRansac ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1,
std::vector< unsigned int > &  inliers,
unsigned int  maxIterations = 100,
double  threshold = 0.01,
unsigned int  seed = 1 
)

estimateFundamentalRansac

Parameters
points0
points1
inliers
maxIterations
Returns

◆ estimateFundamentalWithNonLinearRefinement()

PIC_INLINE Eigen::Matrix3d pic::estimateFundamentalWithNonLinearRefinement ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1,
std::vector< unsigned int > &  inliers,
unsigned int  maxIterationsRansac = 100,
double  thresholdRansac = 0.01,
unsigned int  seed = 1,
unsigned int  maxIterationsNonLinear = 10000,
float  thresholdNonLinear = 1e-4f 
)

estimateFundamentalWithNonLinearRefinement

Parameters
F
Returns

◆ estimateHomography()

PIC_INLINE Eigen::Matrix3d pic::estimateHomography ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1 
)

estimateHomography estimates an homography matrix H between image 1 to image 2

Parameters
points0is an array of points computed from image 1.
points1is an array of points computed from image 2.
Returns
It returns the homography matrix H.

◆ estimateHomographyRansac()

PIC_INLINE Eigen::Matrix3d pic::estimateHomographyRansac ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1,
std::vector< unsigned int > &  inliers,
unsigned int  maxIterations = 100,
double  threshold = 4.0,
unsigned int  seed = 1 
)

estimateHomographyRansac computes the homography such that: points1 = H * points0

Parameters
points0
points1
inliers
maxIterations
Returns

◆ estimateHomographyWithNonLinearRefinement()

PIC_INLINE Eigen::Matrix3d pic::estimateHomographyWithNonLinearRefinement ( std::vector< Eigen::Vector2f > &  points0,
std::vector< Eigen::Vector2f > &  points1,
std::vector< unsigned int > &  inliers,
unsigned int  maxIterationsRansac = 10000,
double  thresholdRansac = 2.5,
unsigned int  seedRansac = 1,
unsigned int  maxIterationsNonLinear = 10000,
float  thresholdNonLinear = 1e-5f 
)

estimateHomographyRansac computes the homography such that: points1 = H * points0

Parameters
points0
points1
inliers
maxIterations
Returns

◆ estimateLengthOfCheckers()

PIC_INLINE float pic::estimateLengthOfCheckers ( std::vector< Eigen::Vector2f > &  corners_model,
Eigen::Vector2f &  p0,
Eigen::Vector2f &  p1 
)

estimateLengthInPixelOfCheckers

Parameters
corners_model
p0
p1
Returns

◆ estimateRotatioMatrixAndTranslation()

PIC_INLINE ICP2DTransform pic::estimateRotatioMatrixAndTranslation ( std::vector< Eigen::Vector2f > &  p0,
std::vector< Eigen::Vector2f > &  p1,
std::vector< unsigned int *> &  p0_descs,
std::vector< unsigned int *> &  p1_descs,
int  size_descs,
int *  ind = NULL 
)

estimateRotatioMatrixAndTranslation

Parameters
p0
p1
p0_descs
p1_descs
ind
Returns

◆ estimateWhitePointFromCheckerBoard()

PIC_INLINE float* pic::estimateWhitePointFromCheckerBoard ( Image img,
std::vector< Eigen::Vector2f > &  corners_model,
int  checkerBoardSizeX = 4,
int  checkerBoardSizeY = 6 
)

estimateWhitePointFromCheckerBoard

Parameters
img
corners_model
checkerBoardSizeX
checkerBoardSizeY
Returns

◆ evaluateGaussian()

PIC_INLINE void pic::evaluateGaussian ( Image img,
float  sigma = -1.0f,
bool  bNormTerm = false 
)

evaluateGaussian renders a Gaussian function which is centred in the image.

Parameters
imgis an input image
sigmais the standard deviation of the Gaussian function.
bNormTermis a boolean value. If it is true the Gaussian function is normalized, false otherwise.

◆ evaluateSolid()

PIC_INLINE void pic::evaluateSolid ( Image img)

evaluateSolid renders a centred circle.

Parameters
imgis an input image

◆ executeLiveWireMultipleJNI()

PIC_INLINE std::vector< int > pic::executeLiveWireMultipleJNI ( std::string  imageInPath,
std::vector< int >  controlPoints,
bool  bDownsample 
)

executeLiveWireMultipleJNI

Parameters
imageInPath
controPoints
bDownsample
Returns

◆ expfMinusOne()

PIC_INLINE float pic::expfMinusOne ( float  x)

expMinusOne

Parameters
x
Returns

◆ extractCheckerBoardJNI()

PIC_INLINE std::vector<int> pic::extractCheckerBoardJNI ( std::string  imageInPath,
std::string  imageOutPath 
)

extractCheckerBoardJNI

Parameters
imageInPathis the path for the input image
imageOutPathis the path for the output image
Returns

◆ extractFundamentalMatrix()

PIC_INLINE Eigen::Matrix3d pic::extractFundamentalMatrix ( Eigen::Matrix34d &  M0,
Eigen::Matrix34d &  M1,
Eigen::VectorXd &  e0,
Eigen::VectorXd &  e1 
)

extractFundamentalMatrix

Parameters
M0
M1
e0
e1
Returns

◆ FFTIterative1D()

PIC_INLINE float* pic::FFTIterative1D ( float *  in,
unsigned int  n,
float *  out = NULL 
)

FFTIterative1D.

Parameters
in
n
out
Returns

◆ fftTest()

PIC_INLINE void pic::fftTest ( )

fftTest

◆ filterInliers()

template<class T >
void pic::filterInliers ( std::vector< T > &  vec,
std::vector< unsigned int > &  inliers,
std::vector< T > &  vecOut 
)
inline

filterInliers

Parameters
vec
inliers
vecOut

◆ findBestExposureHistogram()

PIC_INLINE float pic::findBestExposureHistogram ( Image img)

findBestExposureHistogram computes the best exposure value for an image, img,

Parameters
img
Returns
It returns the exposure value in f-stops.

◆ findBestExposureMean()

PIC_INLINE float pic::findBestExposureMean ( Image img)

findBestExposureMean

Parameters
img
Returns
It returns the exposure value in f-stops.

◆ findCheckerBoard()

PIC_INLINE void pic::findCheckerBoard ( Image img,
std::vector< Eigen::Vector2f > &  corners_model,
int  checkerBoardSizeX = 4,
int  checkerBoardSizeY = 7 
)

findCheckerBoard

Parameters
img
corners_model
checkerBoardSizeX
checkerBoardSizeY

◆ fourByteToValue()

unsigned int pic::fourByteToValue ( unsigned char  data[4],
bool  bMotorola 
)

fourByteToValue

Parameters
data
bMotorola
Returns

◆ fprintfMat()

PIC_INLINE void pic::fprintfMat ( Eigen::MatrixXd &  mat,
std::string  name 
)

fprintf

Parameters
mat

◆ FreeEXRImage()

int pic::FreeEXRImage ( EXRImage exrImage)
inline

◆ fromFileToStdString()

std::string pic::fromFileToStdString ( std::string  nameFile)
inline

fromFileToStdString writes a file into a std::string.

Parameters
nameFile
Returns

◆ fromFloatToRGBE()

PIC_INLINE void pic::fromFloatToRGBE ( float *  colFloat,
unsigned char *  colRGBE 
)

fromFloatToRGBE

Parameters
colFloat
colRGBE

◆ fromNumberToString()

template<class T >
std::string pic::fromNumberToString ( num)
inline

fromNumberToString converts a number into a string.

Parameters
numis an input number.

◆ fromRGBEToFloat()

PIC_INLINE void pic::fromRGBEToFloat ( unsigned char *  colRGBE,
float *  colFloat 
)

fromRGBEToFloat

Parameters
colRGBE
colFloat

◆ fromSingleFloatToRGBE()

PIC_INLINE void pic::fromSingleFloatToRGBE ( float *  colFloat,
unsigned char *  colRGBE 
)

fromSingleFloatToRGBE

Parameters
colFloat
colRGBE

◆ fromStdStringToChar()

char* pic::fromStdStringToChar ( std::string  str)
inline

fromStdStringToChar converts from a std::string to a char*.

Parameters
str
Returns

◆ genBilString()

std::string pic::genBilString ( std::string  type,
float  sigma_s,
float  sigma_r 
)
inline

genBilString

Parameters
type
sigma_s
sigma_r
Returns

◆ GenerateMask()

PIC_INLINE GLuint pic::GenerateMask ( int  width,
int  height,
bool *  buffer = NULL,
GLuint  tex = 0,
unsigned char *  tmpBuffer = NULL,
bool  mipmap = false 
)

GenerateMask creates an opengl mask (a texture) from a buffer of bool values.

Parameters
width
height
buffer
tex
tmpBuffer
mipmap
Returns

◆ generateTexture2DArrayGL()

PIC_INLINE GLuint pic::generateTexture2DArrayGL ( int  width,
int  height,
int  channels,
int  frames,
float *  data = NULL 
)

generateTexture2DArrayGL

Parameters
width
height
channels
frames
data
Returns

◆ generateTexture2DGL()

PIC_INLINE GLuint pic::generateTexture2DGL ( int  width,
int  height,
int  channels,
float *  data = NULL,
bool  mipmap = false 
)

generateTexture2DGL

Parameters
width
height
channels
data
mipmap
Returns

◆ generateTexture2DU32GL()

PIC_INLINE GLuint pic::generateTexture2DU32GL ( int  width,
int  height,
int  channels,
int *  data = NULL 
)

generateTexture2DU32GL

Parameters
width
height
channels
Returns

◆ generateTexture3DGL()

PIC_INLINE GLuint pic::generateTexture3DGL ( int  width,
int  height,
int  channels,
int  frames,
float *  data = NULL 
)

generateTexture3DGL

Parameters
width
height
channels
frames
data
Returns

◆ generateTextureCubeMapGL()

PIC_INLINE GLuint pic::generateTextureCubeMapGL ( int  width,
int  height,
int  channels,
int  frames,
float *  data = NULL 
)

generateTextureCubeMapGL

Parameters
width
height
channels
frames
data
Returns

◆ getAllExposures()

PIC_INLINE std::vector<float> pic::getAllExposures ( Image imgIn)

getAllExposures computes all required exposure values for reconstructing the input image using histogram sampling

Parameters
imgInis an input image
Returns
It returns an std::vector<float> with all exposure values encoding imgIn

◆ getAllExposuresImages() [1/2]

PIC_INLINE ImageVec pic::getAllExposuresImages ( Image imgIn,
std::vector< float > &  fstops,
float  gamma = 2.2f 
)

getAllExposuresImages converts an image into a stack of images.

Parameters
imgInis an input image.
fstopsa vector with fstops.
gammais the gamma correction value for the output stack.
Returns
It returns an ImageVec of images which encode imgIn at different exposure values.

◆ getAllExposuresImages() [2/2]

PIC_INLINE ImageVec pic::getAllExposuresImages ( Image imgIn,
float  gamma = 2.2f 
)

getAllExposuresImages converts an image into a stack of images.

Parameters
imgInis an input image.
gammais the gamma correction value for the output stack.
Returns
It returns an ImageVec of images which encode imgIn at different exposure values.

◆ getAllExposuresImagesGL()

PIC_INLINE ImageGLVec pic::getAllExposuresImagesGL ( ImageGL imgIn,
float  gamma = 2.2f 
)

getAllExposuresImagesGL converts an HDR image into a stack of LDR images

Parameters
imgIn
Returns

◆ getAllExposuresUniform()

PIC_INLINE std::vector<float> pic::getAllExposuresUniform ( Image imgIn)

getAllExposuresUniform computes all required exposure values for reconstructing the input image using uniform sampling

Parameters
imgInis an input image
Returns
It returns an std::vector<float> with all f-stops values encoding imgIn

◆ getBridsonSamples()

template<unsigned int N>
void pic::getBridsonSamples ( std::mt19937 *  m,
float  radius,
std::vector< float > &  samples,
int  kSamples = 30 
)

getBridsonSamples

Parameters
m
radius
samples
kSamples

◆ getBytesForComponents()

int pic::getBytesForComponents ( int  value)

getBytesForComponents

Parameters
value
Returns

◆ getCameraMatrix()

PIC_INLINE Eigen::Matrix34d pic::getCameraMatrix ( Eigen::Matrix3d &  K,
Eigen::Matrix3d &  R,
Eigen::Vector3d &  t 
)

getCameraMatrix

Parameters
K
R
t
Returns

◆ getCameraMatrixFromHomography()

PIC_INLINE Eigen::Matrix34d pic::getCameraMatrixFromHomography ( Eigen::Matrix3d &  H,
Eigen::Matrix3d &  K 
)

getCameraMatrixFromHomography

Parameters
His 3x3 homography matrix.
K
Returns

◆ getCameraMatrixIdentity()

PIC_INLINE Eigen::Matrix34d pic::getCameraMatrixIdentity ( Eigen::Matrix3d &  K)

getCameraMatrixIdentity

Parameters
K
Returns

◆ getChannelsFromInternalFormatGL()

int pic::getChannelsFromInternalFormatGL ( int  internalFormat)
inline

getChannelsFromInternalFormatGL returns the number of channels given an internal format.

Parameters
internalFormatis the OpenGL internal format of a texture.
Returns
It returns the number of channels.

◆ getCheckerBoardModel()

PIC_INLINE Image* pic::getCheckerBoardModel ( int  checkers_x,
int  checkers_y,
int  checkers_size,
std::vector< Eigen::Vector2f > &  out 
)

getCheckerBoardModel

Parameters
chekers_x
checkers_y
checkers_size
out
Returns

◆ getDartThrowingSamples()

template<unsigned int N>
void pic::getDartThrowingSamples ( std::mt19937 *  m,
float  radius2,
int  nSamples,
std::vector< float > &  samples 
)

getDartThrowingSamples

Parameters
m
radius2
nSamples
samples

◆ getDiagonalFromMatrix()

PIC_INLINE Eigen::Vector3d pic::getDiagonalFromMatrix ( Eigen::Matrix3d &  mat)

getDiagonalFromMatrix

Parameters
mat
Returns

◆ getErrorPointsList()

PIC_INLINE float pic::getErrorPointsList ( std::vector< Eigen::Vector2f > &  p0,
std::vector< Eigen::Vector2f > &  p1 
)

getErrorPointsList

Parameters
p0
p1
Returns

◆ getExtension()

std::string pic::getExtension ( std::string  name)
inline

getExtension gets the extension of a file name.

Parameters
name
Returns

◆ getFileName()

std::string pic::getFileName ( std::string  path)
inline

getFileName gets the file name.

Parameters
path
Returns

◆ getFileNameOnly()

std::string pic::getFileNameOnly ( std::string  name)
inline

getFileNameOnly

Parameters
nameis the input name with global/local path and extension
Returns
it returns ONLY the file name without path

◆ getFocalLengthFromFOVAngle()

PIC_INLINE double pic::getFocalLengthFromFOVAngle ( double  fovy)

getFocalLengthFromFOVAngle

Parameters
fovyis an angle in radians.
Returns

◆ getFocalLengthPixels()

PIC_INLINE double pic::getFocalLengthPixels ( double  focal_length_mm,
double  sensor_size_mm,
double  sensor_size_px 
)

getFocalLengthPixels

Parameters
focal_length_mm
sensor_size_mm
sensor_size_px
Returns

◆ getFolderName()

std::string pic::getFolderName ( std::string  path)
inline

getFolderName gets the folder name from the path.

Parameters
path
Returns

◆ getFOVAngleFromFocalSensor()

PIC_INLINE double pic::getFOVAngleFromFocalSensor ( double  f,
double  x,
double  y 
)

getFOVAngleFromFocalSensor

Parameters
fis the focal length in mm
xis the sensor width in mm
yis the sensor height in mm
Returns

◆ getHomographyMatrixFromTwoImage()

Eigen::Matrix3d pic::getHomographyMatrixFromTwoImage ( Image img0,
Image img1 
)

getHomographyMatrixFromTwoImage

Parameters
img0
img1
Returns

◆ getIntrinsicsMatrix() [1/2]

PIC_INLINE Eigen::Matrix3d pic::getIntrinsicsMatrix ( double  focal_length,
double  m_x,
double  m_y,
double  opitical_center_x,
double  opitical_center_y 
)

getIntrinsicsMatrix

Parameters
focal_length
m_x
m_y
opitical_center_x
opitical_center_y
Returns

◆ getIntrinsicsMatrix() [2/2]

PIC_INLINE Eigen::Matrix3d pic::getIntrinsicsMatrix ( double  focal_length_x,
double  focal_length_y,
double  opitical_center_x,
double  opitical_center_y 
)

getIntrinsicsMatrix

Parameters
focal_length_x
focal_length_y
opitical_center_y
Returns

◆ getLabelHDRExtension()

PIC_INLINE LABEL_IO_EXTENSION pic::getLabelHDRExtension ( std::string  nameFile)

getLabelHDRExtension returns the file label given its file name (for HDR images).

Parameters
nameFileis a file name.
Returns
It returns a file label.

◆ getLabelLDRExtension()

PIC_INLINE LABEL_IO_EXTENSION pic::getLabelLDRExtension ( std::string  nameFile)

getLabelHDRExtension returns the file label given its file name (for LDR images).

Parameters
nameFileis a file name.
Returns
It returns a file label.

◆ getLastColumn()

PIC_INLINE Eigen::Vector3d pic::getLastColumn ( Eigen::Matrix34d &  mat)

getLastColumn

Parameters
mat
Returns

◆ getLinearArrayFromMatrix() [1/2]

PIC_INLINE float* pic::getLinearArrayFromMatrix ( Eigen::Matrix3d &  mat)

getLinearArray

Parameters
mat
Returns

◆ getLinearArrayFromMatrix() [2/2]

PIC_INLINE float* pic::getLinearArrayFromMatrix ( Eigen::Matrix3f &  mat)

getLinearArray

Parameters
mat
Returns

◆ getLocaDirectory()

std::string pic::getLocaDirectory ( std::string  path)
inline

getLocaDirectory gets local path.

Parameters
path
Returns

◆ getMatrix3dFromLinearArray()

PIC_INLINE Eigen::Matrix3d pic::getMatrix3dFromLinearArray ( float *  array)

getMatrix3dFromLinearArray

Parameters
array
Returns

◆ getMatrixdFromLinearArray()

PIC_INLINE Eigen::MatrixXd pic::getMatrixdFromLinearArray ( float *  array,
int  rows,
int  cols 
)

getMatrixFromLinearArray

Parameters
array
rows
cols
Returns

◆ getMatrixfFromLinearArray()

PIC_INLINE Eigen::MatrixXf pic::getMatrixfFromLinearArray ( float *  array,
int  rows,
int  cols 
)

getMatrixFromLinearArray

Parameters
array
rows
cols
Returns

◆ getMeanVector2f()

PIC_INLINE Eigen::Vector2f pic::getMeanVector2f ( std::vector< Eigen::Vector2f > &  p)

getMean

Parameters
p
Returns

◆ getMedianVector2f()

PIC_INLINE Eigen::Vector2f pic::getMedianVector2f ( std::vector< Eigen::Vector2f > &  p)

getMedianVector2f

Parameters
p
Returns

◆ getMinDistance()

PIC_INLINE float pic::getMinDistance ( std::vector< Eigen::Vector2f > &  points)

getMinDistance

Parameters
points
Returns

◆ getMinMaxFstops()

PIC_INLINE void pic::getMinMaxFstops ( Image imgIn,
int &  minFstop,
int &  maxFstop 
)

getMinMaxFstops computes the minimum and maximum f-stop values of an image.

Parameters
imgInis an image.
minFstopis the mininum f-stop of imgIn, output.
maxFstopis the maximum f-stop of imgIn, output.

◆ getModesGL()

void pic::getModesGL ( int  channels,
int &  mode,
int &  modeInternalFormat 
)
inline

getModesGL

Parameters
channels
mode
modeInternalFormat

◆ getModesHalfGL()

void pic::getModesHalfGL ( int  channels,
int &  mode,
int &  modeInternalFormat 
)
inline

getModesHalfGL

Parameters
channels
mode
modeInternalFormat

◆ getModesIntegerGL()

void pic::getModesIntegerGL ( int  channels,
int &  mode,
int &  modeInternalFormat 
)
inline

getModesIntegerGL

Parameters
channels
mode
modeInternalFormat

◆ getMonteCarloSamples()

template<unsigned int N>
PIC_INLINE void pic::getMonteCarloSamples ( std::mt19937 *  m,
int  nSamples,
std::vector< float > &  samples 
)

getMonteCarloSamples

Parameters
m
nSamples
samples

◆ getMonteCarloStratifiedSamples()

template<unsigned int N>
PIC_INLINE void pic::getMonteCarloStratifiedSamples ( std::mt19937 *  m,
int  nSamples,
std::vector< float > &  samples 
)

getMonteCarloStratifiedSamples

Parameters
m
nSamples
samples

◆ getOpticalCenter()

PIC_INLINE Eigen::Vector3d pic::getOpticalCenter ( Eigen::Matrix34d &  P)

getOpticalCenter

Parameters
Pthe camera matrix of a view
Returns
it returns the camera center of P

◆ getPatternMethodSamples()

template<unsigned int N>
PIC_INLINE void pic::getPatternMethodSamples ( int  nSamples,
std::vector< float > &  samples 
)

getPatternMethodSampler

Parameters
nSamples
samples

◆ getRandom()

PIC_INLINE float pic::getRandom ( unsigned int  n)

Random returns a number in [0, 2^32 - 1] to a float in [0, 1].

Parameters
nis a 32-bit unsigned integer number.
Returns
It returns n as a normalized float in [0, 1].

◆ getRandombase()

PIC_INLINE float pic::getRandombase ( )

Randombase returns a number in [0, 1] based on rand().

Returns
It returns a random number in [0, 1].

◆ getRandomInt()

PIC_INLINE int pic::getRandomInt ( int  n,
int  a,
int  b 
)

getRandomInt

Parameters
n
a
b
Returns

◆ getRandomPermutation()

PIC_INLINE void pic::getRandomPermutation ( std::mt19937 &  m,
unsigned int *  perm,
unsigned int  nPerm,
unsigned int  n 
)

getRandomPermutation computes a random permutation.

Parameters
mis a Mersenne Twister random number generator.
permis the array where to store the permutation.
nPermis the size of perm.
nis the number of object to permutate.

◆ getSeparator()

std::string pic::getSeparator ( std::string  path)
inline

getSeparator returns the folder separator in path as a string

Parameters
path
Returns

◆ getSeparatorChar()

char pic::getSeparatorChar ( std::string  path)
inline

getSeparatorChar returns the folder separator in path as a char.

Parameters
path
Returns

◆ getShiftScaleMatrix()

PIC_INLINE Eigen::Matrix3d pic::getShiftScaleMatrix ( Eigen::Vector3f &  info)

getShiftScaleMatrix computes a shifting and scaling matrix

Parameters
infois an array with the center (0 and 1) a scaling factor (3)
Returns
It returns a scaling and shifting matrix.

◆ getSquareMatrix()

PIC_INLINE Eigen::Matrix3d pic::getSquareMatrix ( Eigen::Matrix34d &  mat)

getSquareMatrix

Parameters
mat
Returns

◆ getTagID()

int pic::getTagID ( unsigned char  tag[2],
bool  bMotorola 
)

getTagID

Parameters
tag
bMotorola
Returns

◆ getTextureInformationGL()

PIC_INLINE void pic::getTextureInformationGL ( GLuint  texture,
GLuint  target,
int &  width,
int &  height,
int &  frames,
int &  channels 
)

getTextureInformationGL returns width, height and frames values from a texture with target.

Parameters
textureis the OpenGL texture pointer.
targetis the OpenGL target of texture.
widthis the horizontal length in pixel of texture.
heightis the vertical length in pixel of texture.
framesis the number of frames of texture.
channelsis the number of color channels of texture.

◆ getValueBF()

PIC_INLINE int pic::getValueBF ( BF_TYPE  type)

getValueBF

Parameters
type
Returns

◆ glBeginTimeQuery()

GLuint pic::glBeginTimeQuery ( )
inline

glBeginTimeQuery

Returns

◆ glEndTimeQuery()

GLuint64 pic::glEndTimeQuery ( GLuint64  ret)
inline

glEndTimeQuery

Parameters
ret
Returns

◆ glGetPrintError()

PIC_INLINE void pic::glGetPrintError ( )

glGetPrintError

◆ GLSL_BICUBIC()

PIC_INLINE std::string pic::GLSL_BICUBIC ( )

GLSL_BICUBIC returns bicubic sample.

Returns
It returns a string; a building block for a shader.

◆ GLSL_DRAGO_TMO()

PIC_INLINE std::string pic::GLSL_DRAGO_TMO ( )

GLSL_DRAGO_TMO returns Drago et al.'s tone mapping operator.

Returns
It returns a string; a building block for a shader.

◆ GLSL_SIMPLE_EXPOSURE_GAMMA()

PIC_INLINE std::string pic::GLSL_SIMPLE_EXPOSURE_GAMMA ( )

GLSL_SIMPLE_EXPOSURE_GAMMA applies a simple gamma correctiona and exposure in a shader.

Returns
It returns a string which represents a part of a shader.

◆ GLSL_TEXTURE_BICUBIC()

PIC_INLINE std::string pic::GLSL_TEXTURE_BICUBIC ( )

GLSL_TEXTURE_BICUBIC.

Returns

◆ IM()

PIC_INLINE unsigned int pic::IM ( unsigned int  x)

IM.

Parameters
x
Returns

◆ imageAlignmentWithORB()

Image* pic::imageAlignmentWithORB ( Image img0,
Image img1,
Image imgOut 
)

imageAlignmentWithORB

Parameters
img0
img1
imgOut
Returns

◆ ImageGLVecCheck()

PIC_INLINE bool pic::ImageGLVecCheck ( ImageGLVec imgIn,
int  minInputImages 
)

ImageGLVecCheck.

Parameters
vec
minInputImages
Returns

◆ ImageVecCheck()

PIC_INLINE bool pic::ImageVecCheck ( ImageVec imgIn,
int  minInputImages 
)

ImageVecCheck.

Parameters
vec
minInputImages
Returns

◆ ImageVecCheckSimilarType()

PIC_INLINE bool pic::ImageVecCheckSimilarType ( ImageVec stack)

ImageVecCheckSimilarType.

Parameters
stack
Returns

◆ ImaveVecGetExposureTimesAsArray()

PIC_INLINE void pic::ImaveVecGetExposureTimesAsArray ( ImageVec stack,
std::vector< float > &  output,
bool  bLog 
)

ImaveVecGetExposureTimesAsArray.

Parameters
stack

◆ ImaveVecSortByExposureTime()

PIC_INLINE void pic::ImaveVecSortByExposureTime ( ImageVec stack)

ImaveVecSortByExposureTime.

Parameters
stack

◆ importanceSampling()

template<uint N>
void pic::importanceSampling ( Vec< N, float > &  in,
float  e,
int &  channel,
float &  pdf 
)

importanceSampling

Parameters
in
e
channel
pdf

◆ InitEXRImage()

void pic::InitEXRImage ( EXRImage exrImage)
inline

◆ insideVecBBox()

template<uint N>
PIC_INLINE bool pic::insideVecBBox ( const Vec< N, float > &  sample)

insideVecBBox

Parameters
sample
Returns

◆ invBilinear()

void pic::invBilinear ( float  A,
float  dx,
float  dy,
float *  out 
)
inline

invBilinear

Parameters
A
dx
dy
out

◆ isinf()

template<typename T >
PIC_INLINE bool pic::isinf ( value)

isinf is it a Inf value?

Parameters
value
Returns

◆ isnan()

template<typename T >
PIC_INLINE bool pic::isnan ( value)

isnan is it a NaN?

Parameters
value
Returns

◆ iterativeClosestPoints2D()

PIC_INLINE void pic::iterativeClosestPoints2D ( std::vector< Eigen::Vector2f > &  points_pattern,
std::vector< Eigen::Vector2f > &  points,
std::vector< unsigned int *> &  points_pattern_descs,
std::vector< unsigned int *> &  points_descs,
int  size_descs,
int  maxIterations = 1000 
)

iterativeClosestPoints2D

Parameters
points_pattern
points
points_pattern_descs
points_descs
thresholdErr
maxIterations

◆ Lanczos()

float pic::Lanczos ( float  x,
float  a 
)
inline

Lanczos.

Parameters
x
a
Returns

◆ lerp()

PIC_INLINE float pic::lerp ( float  t,
float  x0,
float  x1 
)

lerp evaluates linear interpolation

Parameters
tis a value in [0.0, 1.0].
x0is the min value.
x1is the max value.
Returns
it returns x0 + t * (x1 - x0)

◆ LischinskiFunction()

float pic::LischinskiFunction ( float  Lcur,
float  Lref,
float  param[2],
float  LISCHINSKI_EPSILON = 0.0001f 
)
inline

LischinskiFunction.

param[0] –> alpha param[1] –> lambda

Parameters
Lcur
Lref
param
LISCHINSKI_EPSILON
Returns

◆ LischinskiFunctionGauss()

float pic::LischinskiFunctionGauss ( float  Lcur,
float  Lref,
float  param[2] 
)
inline

LischinskiFunctionGauss.

Parameters
Lcur
Lref
param
Returns

◆ LischinskiMinimization()

PIC_INLINE Image* pic::LischinskiMinimization ( Image L,
Image g,
Image omega = NULL,
float  omega_global = 1.0f,
Image gOut = NULL,
float  alpha = 1.0f,
float  lambda = 0.4f,
float  LISCHINSKI_EPSILON = 1e-4f 
)

LischinskiMinimization.

Parameters
L
g
omega
omega_global
gOut
alpha
lambda
LISCHINSKI_EPSILON
Returns

◆ LoadDeepEXR()

int pic::LoadDeepEXR ( DeepImage out_image,
const char *  filename,
const char **  err 
)
inline

◆ LoadEXR()

int pic::LoadEXR ( float **  out_rgba,
int *  width,
int *  height,
const char *  filename,
const char **  err 
)
inline

◆ LoadEXRFromMemory()

int pic::LoadEXRFromMemory ( float *  out_rgba,
const unsigned char *  memory,
const char **  err 
)
inline

◆ LoadMultiChannelEXRFromFile()

int pic::LoadMultiChannelEXRFromFile ( EXRImage image,
const char *  filename,
const char **  err 
)
inline

◆ LoadMultiChannelEXRFromMemory()

int pic::LoadMultiChannelEXRFromMemory ( EXRImage image,
const unsigned char *  memory,
const char **  err 
)
inline

◆ log10fPlusEpsilon()

PIC_INLINE float pic::log10fPlusEpsilon ( float  x)

log10fPlusEpsilon

Parameters
x
Returns

◆ log10PlusOne()

PIC_INLINE float pic::log10PlusOne ( float  x)

logf10PlusOne computes log10 of a value plus 1.

Parameters
xis a value for which the log10 needs to be computed.
Returns
It returns log10(x + 1).

◆ log2() [1/2]

PIC_INLINE int pic::log2 ( int  n)

log2 computes logarithm in base 2 for integers.

Parameters
nis an integer value.
Returns
It returns log2 of n.

◆ log2() [2/2]

PIC_INLINE double pic::log2 ( double  x)

log2

Parameters
x
Returns

◆ log2f()

PIC_INLINE float pic::log2f ( float  x)

log2f logarithm in base 2 for floating point

Parameters
x
Returns

◆ log2fPlusEpsilon()

PIC_INLINE float pic::log2fPlusEpsilon ( float  x)

log2fPlusEpsilon

Parameters
x
Returns

◆ logRMSE()

PIC_INLINE double pic::logRMSE ( Image ori,
Image cmp 
)

logRMSE computes root mean square error (RMSE) in the log_e domain.

Parameters
oriis the original image.
cmpis the distorted image.
Returns
It returns RMSE in the log_e domain.

◆ lround() [1/2]

PIC_INLINE long pic::lround ( double  x)

lround rounds double numbers properly.

Parameters
xis a scalar.
Returns

◆ lround() [2/2]

PIC_INLINE float pic::lround ( float  x)

lround rounds float numbers properly.

Parameters
xis a scalar.
Returns

◆ MAE()

PIC_INLINE double pic::MAE ( Image ori,
Image cmp,
bool  bLargeDifferences = false,
METRICS_DOMAIN  type = MD_LIN 
)

MAE computes the mean abosulute errore (MAE) between two images.

Parameters
oriis the original image.
cmpis the distorted image.
bLargeDifferences,iftrue, skips big differences for stability.
typeis the domain where to compute RMSE (linear, logarithmic, and PU).
Returns
It returns the MAE value between ori and cmp.

◆ MatrixConvert() [1/3]

PIC_INLINE Matrix3x3 pic::MatrixConvert ( Eigen::Matrix3f &  mat)

MatrixConvert converts a matrix from a Eigen::Matrix3f representation into a Matrix3x3 representation.

Parameters
matis an Eigen 3x3 matrix.
Returns
It returns a Matrix3x3 with values from mat.

◆ MatrixConvert() [2/3]

PIC_INLINE Matrix3x3 pic::MatrixConvert ( Eigen::Matrix3d &  mat)

MatrixConvert converts a matrix from a Eigen::Matrix3f representation into a Matrix3x3 representation.

Parameters
matis an Eigen 3x3 matrix.
Returns
It returns a Matrix3x3 with values from mat.

◆ MatrixConvert() [3/3]

PIC_INLINE Eigen::Matrix3f pic::MatrixConvert ( Matrix3x3 mat)

MatrixConvert.

Parameters
mat
Returns

◆ MaximumError()

PIC_INLINE float pic::MaximumError ( Image ori,
Image cmp,
bool  bLargeDifferences = false 
)

MaximumError computes the maximum error between two images.

Parameters
oriis the original image.
cmpis the distorted image.
bLargeDifferences,iftrue, skips big differences for stability.
Returns
It returns the maxium error value between ori and cmp.

◆ MitchellNetravali()

float pic::MitchellNetravali ( float  x,
float  B,
float  C 
)
inline

MitchellNetravali.

Parameters
x
B
C
Returns

◆ MitsunagaNayarClassic()

PIC_INLINE float pic::MitsunagaNayarClassic ( int *  samples,
const std::size_t  nSamples,
const std::vector< float > &  exposures,
std::vector< float > &  coefficients,
const bool  computeRatios,
std::vector< float > &  R,
const float  eps,
const std::size_t  max_iterations 
)

MitsunagaNayarClassic computes the inverse CRF of a camera as a polynomial function.

Parameters
samplesSample array of size nSamples x #exposures.
nSamplesNumber of samples, for each exposure.
exposuresArray of exposure timings (size: #exposures = 'Q' as in the Mitsunaga & Nayar paper).
coefficientsThe output coefficients ('c' in the paper) resulting from the computation.
computeRatiosfalse if exact exposures are passed, true to approximate exposure ratios as in the paper.
RThe output estimated exposure ratios, i.e. R[q1][q2] = 'R_{q1,q2}' as in the book.
epsThreshold for stopping the approximation process.
max_iterationsMaximum number of iterations.
Returns
The error as in the paper.

◆ MitsunagaNayarFull()

PIC_INLINE float pic::MitsunagaNayarFull ( int *  samples,
const std::size_t  nSamples,
const std::vector< float > &  exposures,
std::vector< float > &  coefficients,
bool  computeRatios,
std::vector< std::vector< float >> &  R,
const float  eps,
const std::size_t  max_iterations 
)

MitsunagaNayarFull computes the inverse CRF of a camera as a polynomial function, using all exposure ratios.

Parameters
samplesSample array of size nSamples x #exposures.
nSamplesNumber of samples, for each exposure.
exposuresArray of exposure timings (size: #exposures = 'Q' as in the Mitsunaga & Nayar paper).
coefficientsThe output coefficients ('c' in the paper) resulting from the computation.
computeRatiosfalse if exact exposures are passed, true to approximate exposure ratios as in the paper.
RThe output estimated exposure ratios, i.e. R[q1][q2] = 'R_{q1,q2}' as in the book.
epsThreshold for stopping the approximation process.
max_iterationsMaximum number of iterations.
Returns
The error as in the paper.

◆ mPSNR()

PIC_INLINE double pic::mPSNR ( Image ori,
Image cmp,
MULTI_EXPOSURE_TYPE  type,
int  minFstop = 0,
int  maxFstop = 0 
)

mPSNR computes the multiple-exposure peak signal-to-noise ratio (mPSNR) between two images.

Parameters
oriis the original image.
cmpis the distorted image.
type.
minFstopis the minimum f-stop value of ori.
maxFstopis the maximum f-stop value of ori.
Returns
It returns the nMPSR error value between ori and cmp.

◆ MSE() [1/2]

PIC_INLINE double pic::MSE ( Image ori,
Image cmp,
bool  bLargeDifferences = false,
METRICS_DOMAIN  type = MD_LIN 
)

MSE computes the mean square error (MSE) between two images.

Parameters
oriis the original image.
cmpis the distorted image.
bLargeDifferences,iftrue, skips big differences for stability.
typeis the domain where to compute MSE (linear, logarithmic, and PU).
Returns
It returns the MSE value between ori and cmp.

◆ MSE() [2/2]

PIC_INLINE double pic::MSE ( Image ori,
Image cmp,
float  gamma = 2.2f,
float  fstop = 0.0f,
int  nBit = 8 
)

MSE computes the mean square error (MSE) between two HDR images with given exposure and gamma.

Parameters
oriis the original image.
cmpis the distorted image.
gammais the encoding gamma.
fstopis the f-stop value of the image.
nBitis the number of bits used for the discretization.
Returns
It returns the MSE value between ori and cmp.

◆ noramalizeFundamentalMatrix()

PIC_INLINE Eigen::Matrix3d pic::noramalizeFundamentalMatrix ( Eigen::Matrix3d  F)

noramalizeFundamentalMatrix

Parameters
F
Returns

◆ normalCDF()

float pic::normalCDF ( float  x,
float  mu,
float  sigma 
)

normalCDF

Parameters
x
mu
sigma
Returns

◆ normalDistribution()

PIC_INLINE float pic::normalDistribution ( float  x,
float  mu = 0.0f,
float  sigma = 1.0f 
)

normalDistribution

Parameters
x
mu
sigma
Returns

◆ normalize()

template<uint N>
PIC_INLINE Vec<N, float> pic::normalize ( Vec< N, float >  x)

◆ ParseEXRHeaderFromMemory()

int pic::ParseEXRHeaderFromMemory ( EXRAttribute customAttributes,
int *  numCustomAttributes,
int *  width,
int *  height,
const unsigned char *  memory 
)
inline

◆ ParseMultiChannelEXRHeaderFromFile()

int pic::ParseMultiChannelEXRHeaderFromFile ( EXRImage image,
const char *  filename,
const char **  err 
)
inline

◆ ParseMultiChannelEXRHeaderFromMemory()

int pic::ParseMultiChannelEXRHeaderFromMemory ( EXRImage image,
const unsigned char *  memory,
const char **  err 
)
inline

◆ parseStringToStdVector()

void pic::parseStringToStdVector ( std::string  str,
char  delim,
StringVec str_vec 
)
inline

parseStringToStdVector

Parameters
str
delim
str_vec

◆ PoissonRadius()

float pic::PoissonRadius ( int  nSamples)
inline

PoissonRadius estimates the radius of a Poisson-disk like distribution using nSmaples.

Parameters
nSamplesis the number of samples to have.
Returns
It returns the estimation of the radius.

◆ pow2()

PIC_INLINE int pic::pow2 ( int  n)

pow2 computes 2^n.

Parameters
nis a positive exponent.
Returns
It returns 2^n.

◆ pow2f()

PIC_INLINE float pic::pow2f ( float  x)

pow2f

Parameters
x
Returns

◆ powf10fMinusEpsilon()

PIC_INLINE float pic::powf10fMinusEpsilon ( float  x)

powf10fMinusEpsilon

Parameters
x
Returns

◆ powint()

PIC_INLINE int pic::powint ( int  x,
int  b 
)

powint computes power function for integer values.

Parameters
xis the base.
bis the exponent.
Returns
it returns x^b.

◆ printfMat() [1/3]

PIC_INLINE void pic::printfMat ( Eigen::MatrixXd  mat)

printf

Parameters
mat

◆ printfMat() [2/3]

PIC_INLINE void pic::printfMat ( Eigen::Matrix3f &  mat)

printf

Parameters
mat

◆ printfMat() [3/3]

PIC_INLINE void pic::printfMat ( Eigen::Matrix3d &  mat)

printf

Parameters
mat

◆ printfMat34d()

PIC_INLINE void pic::printfMat34d ( Eigen::Matrix34d &  mat)

printf

Parameters
mat

◆ printfVet3d()

PIC_INLINE void pic::printfVet3d ( Eigen::Vector3d &  x)

printfVet3d

Parameters
x

◆ PSNR()

PIC_INLINE double pic::PSNR ( Image ori,
Image cmp,
double  max_value = -1.0,
bool  bLargeDifferences = false,
METRICS_DOMAIN  type = MD_LIN 
)

PSNR computes the peak signal to noise ratio (PSNR) between two images.

Parameters
oriis the original image.
cmpis the distorted image.
max_valueis the maximum value of the domain of ori and cmp. If ori and comp are normalized 8-bit LDR/SDR images max_value MUST BE 1.0!
bLargeDifferences,iftrue, skips big differences for stability.
typeis the domain where to compute MSE (linear, logarithmic, and PU).
Returns
It returns the PSNR value between ori and cmp.

◆ PUDecode()

float pic::PUDecode ( float  p)

PUDecode decodes perceptually uniform values into luminance values.

Parameters
pis a perceptually uniform luminance value
Returns
it returns a luminance value in the range [10^-6, 10^10] cd/m^2

◆ PUEncode()

float pic::PUEncode ( float  L)

PUEncode encodes luminance values in a perceptually uniform space.

Parameters
Lis a luminance value in cd/m^2; it works for values in the range [10^-6, 10^10] cd/m^2
Returns
it returns a perceptually uniform value

◆ Quad()

PIC_INLINE ImageVec pic::Quad ( Image img1,
Image img2,
Image img3,
Image img4 
)

Triple creates an std::vector which contains img1, img2, img3, and img4; this is for filters input.

Parameters
img1is a pointer to a pic::Image
img2is a pointer to a pic::Image
img3is a pointer to a pic::Image
img4is a pointer to a pic::Image
Returns
It returns an std::vector which contains img1, img2, img3, and img4.

◆ Rad2Deg()

PIC_INLINE float pic::Rad2Deg ( float  rad)

Rad2Deg converts angles expressed in radians into angles expressed in degrees.

Parameters
radis a value of an angle expressed in radians.
Returns
It returns an ang expressed in degrees.

◆ randomPoint()

template<uint N>
PIC_INLINE Vec<N, float> pic::randomPoint ( std::mt19937 *  m)

randomPoint

Parameters
m
Returns

◆ randU()

float pic::randU ( )
inline

randU computes a random number in [0, 1[ using the classic rand().

Returns
It returns a random value in [0, 1[ using the classic rand().

◆ RE()

PIC_INLINE unsigned int pic::RE ( unsigned int  x)

RE.

Parameters
x
Returns

◆ ReadBMP()

PIC_INLINE unsigned char* pic::ReadBMP ( std::string  nameFile,
unsigned char *  data,
int &  width,
int &  height,
int &  channels 
)

ReadBMP reads an image as .bmp file.

Parameters
nameFile
data
width
height
channels
Returns

◆ readEXIF()

bool pic::readEXIF ( std::string  name,
EXIFInfo info 
)

readEXIF

Parameters
name
info
Returns

◆ ReadEXR()

PIC_INLINE float* pic::ReadEXR ( std::string  nameFile,
float *  data,
int &  width,
int &  height,
int &  channels 
)

◆ ReadHDR()

PIC_INLINE float* pic::ReadHDR ( std::string  nameFile,
float *  data,
int &  width,
int &  height 
)

ReadHDR reads a .hdr/.pic file.

Parameters
nameFile
data
width
height
Returns

◆ readMatrix34dFromFile()

PIC_INLINE Eigen::Matrix34d pic::readMatrix34dFromFile ( std::string  nameFile)

readMatrix34dFromFile

Parameters
nameFile
Returns

◆ ReadPFM()

PIC_INLINE float* pic::ReadPFM ( std::string  nameFile,
float *  data,
int &  width,
int &  height,
int &  channel 
)

ReadPFM loads a portable float map from a file.

Parameters
nameFile
data
width
height
channel
Returns

◆ ReadPGM()

PIC_INLINE unsigned char* pic::ReadPGM ( std::string  nameFile,
unsigned char *  data,
int &  width,
int &  height,
int &  channels 
)

ReadPGM reads an .ppm file.

Parameters
nameFile
data
width
height
channels
Returns

◆ ReadPPM()

PIC_INLINE unsigned char* pic::ReadPPM ( std::string  nameFile,
unsigned char *  data,
int &  width,
int &  height,
int &  channels 
)

ReadPPM reads an .ppm file.

Parameters
nameFile
data
width
height
channels
Returns

◆ ReadSTB()

PIC_INLINE unsigned char* pic::ReadSTB ( std::string  nameFile,
int &  width,
int &  height,
int &  channels 
)

ReadSTB.

Parameters
nameFile
width
height
channels
Returns

◆ readString()

std::string pic::readString ( FILE *  file,
int  length 
)

readString

Parameters
file
length
Returns

◆ readStringFromUChar()

std::string pic::readStringFromUChar ( unsigned char *  data,
int  length 
)

readStringFromUChar

Parameters
data
Returns

◆ ReadTGA()

PIC_INLINE unsigned char* pic::ReadTGA ( std::string  nameFile,
unsigned char *  data,
int &  width,
int &  height,
int &  channels 
)

ReadTGA reads an image in the .tga format.

Parameters
nameFile
data
width
height
channels
Returns

◆ ReadTMP()

PIC_INLINE float* pic::ReadTMP ( std::string  nameFile,
float *  data,
int &  width,
int &  height,
int &  channels,
int &  frames,
bool  bHeader = true 
)

ReadTMP reads a dump temp file.

Parameters
nameFile
data
width
height
channels
frames
bHeader
Returns

◆ readUnsignedRational()

float pic::readUnsignedRational ( FILE *  file,
bool  bMotorola 
)

readUnsignedRational

Parameters
file
bMotorola
Returns

◆ ReadVOL()

PIC_INLINE float* pic::ReadVOL ( std::string  nameFile,
float *  data,
int &  width,
int &  height,
int &  depth,
int &  channels 
)

ReadVOL.

Parameters
nameFile
data
width
height
depth
channels
Returns

◆ RelativeError()

PIC_INLINE double pic::RelativeError ( Image ori,
Image cmp,
bool  bLargeDifferences = false,
METRICS_DOMAIN  type = MD_LIN 
)

RelativeError computes the relative error between two images.

Parameters
oriis the original image.
cmpis the distorted image.
bLargeDifferences,iftrue, skips big differences for stability.
typeis the domain where to compute MSE (linear, logarithmic, and PU).
Returns
It returns the relative error value between ori and cmp.

◆ releasePtr()

template<class T >
T* pic::releasePtr ( T *  data)
inline

release

Parameters
data
Returns

◆ removeExtension()

std::string pic::removeExtension ( std::string  name)
inline

RemoveExtension removes the extension of a string.

Parameters
name
Returns

◆ removeInitialSpaces()

std::string pic::removeInitialSpaces ( char  name[])
inline

removeInitialSpaces removes spaces at the beginning of a string.

Parameters
name
Returns

◆ removeLensDistortion()

PIC_INLINE Eigen::Vector2d pic::removeLensDistortion ( Eigen::Vector2d &  p,
double  k[5] 
)

removeLensDistortion

Parameters
point
K
Returns

◆ removeLocalPath()

std::string pic::removeLocalPath ( std::string  name)
inline

removeLocalPath removes the local path of a string.

Parameters
name
Returns

◆ replaceExtension()

std::string pic::replaceExtension ( std::string  nameOut,
std::string  fmtIn,
std::string  fmtOut 
)
inline

replaceExtension changes .format in a file name.

Parameters
nameOut
fmtIn
fmtOut
Returns

◆ rigidTransform()

PIC_INLINE Eigen::Vector3d pic::rigidTransform ( Eigen::Vector3d &  point,
Eigen::Matrix3d &  R,
Eigen::Vector3d &  t 
)

rigidTransform computes a rigidi transformation in 3D.

Parameters
pointis the point to be transformed.
Ris a rotation matrix 3x3.
tis a translation vector.
Returns

◆ RMSE()

PIC_INLINE double pic::RMSE ( Image ori,
Image cmp,
bool  bLargeDifferences = false,
METRICS_DOMAIN  type = MD_LIN 
)

RMSE computes the root mean squared error (RMSE) between two images.

Parameters
oriis the original image.
cmpis the distorted image.
bLargeDifferences,iftrue, skips big differences for stability.
typeis the domain where to compute RMSE (linear, logarithmic, and PU).
Returns
It returns the MSE value between ori and cmp.

◆ RotationMatrixRefinement()

PIC_INLINE Eigen::Matrix3d pic::RotationMatrixRefinement ( Eigen::Matrix3d &  R)

RotationMatrixRefinement.

Parameters
R
Returns

◆ Rx()

float pic::Rx ( float  x)
inline

Rx evaluates B-spline (cubic).

Parameters
xis the curve parameter in [0, 1].
Returns
the evaluation of the B-spline.

◆ SaveDeepEXR()

int pic::SaveDeepEXR ( const DeepImage deepImage,
const char *  filename,
const char **  err 
)
inline

◆ SaveMultiChannelEXRToFile()

int pic::SaveMultiChannelEXRToFile ( const EXRImage image,
const char *  filename,
const char **  err 
)
inline

◆ SaveMultiChannelEXRToMemory()

size_t pic::SaveMultiChannelEXRToMemory ( const EXRImage image,
unsigned char **  memory,
const char **  err 
)
inline

◆ scaleTau() [1/3]

template<uint N>
void pic::scaleTau ( Vec< N, float > &  in,
const Vec< N, float > &  tau 
)

scaleTau

Parameters
in
tau

◆ scaleTau() [2/3]

template<uint N>
void pic::scaleTau ( Vec< N, float > &  in,
const Vec< N, float > &  sigma_t,
const Vec< N, float > &  tau 
)

scaleTau

Parameters
in
sigma_t
tau

◆ scaleTau() [3/3]

template<uint N>
void pic::scaleTau ( Vec< N, float > &  in,
const Vec< N, float > &  sigma_t,
float  t 
)

scaleTau

Parameters
in
sigma_t
t

◆ sCurve5()

PIC_INLINE float pic::sCurve5 ( float  x)

sCurve5 evaluates a quintic S-Shape: 6x^5-15x^4+10x^3

Parameters
xis a value in [0.0, 1.0]
Returns

◆ setBorder()

PIC_INLINE std::set<int>* pic::setBorder ( Image img,
std::set< int > *  coordsBorder 
)

setBorder

Parameters
img
coordsBorder
Returns

◆ setBorderNth()

PIC_INLINE std::set<int>* pic::setBorderNth ( Image img,
std::set< int > *  coordsBorder,
int  widthBorder 
)

setBorderNth

Parameters
img
coordsBorder
widthBorder
Returns

◆ setToANullVector()

template<class T >
void pic::setToANullVector ( std::vector< T * > &  vec,
unsigned int  n 
)
inline

setToANullVector

Parameters
vec
n

◆ sFunction()

PIC_INLINE float pic::sFunction ( float  x)

sFunction evaluates a cubic s-function.

Parameters
xis a value in [0.0, 1.0]
Returns
it returns 3 x^2 - 2 x^3

◆ sigmoid()

PIC_INLINE float pic::sigmoid ( float  x)

sigmoid

Parameters
x
Returns

◆ sigmoidInv()

PIC_INLINE float pic::sigmoidInv ( float  x)

sigmoidInv

Parameters
x
Returns

◆ simple8bitWithGamma()

PIC_INLINE float pic::simple8bitWithGamma ( float  x)

simple8bitWithGamma

Parameters
x
Returns

◆ Single()

PIC_INLINE ImageVec pic::Single ( Image img)

Single creates an std::vector which contains img; this is for filters input.

Parameters
imgis a pointer to a pic::Image
Returns
It returns an std::vector which contains img.

◆ SingleGL()

PIC_INLINE ImageGLVec pic::SingleGL ( ImageGL img)

SingleGL creates a single for filters input.

Parameters
img
Returns

◆ SingleInt()

PIC_INLINE std::vector<int> pic::SingleInt ( int  v0)

SingleInt.

Parameters
v0
Returns

◆ SmoothStep()

PIC_INLINE float pic::SmoothStep ( float  a,
float  b,
float  value 
)

SmoothStep smoothes a value from a to b using a cube S-Shape.

Parameters
ais the min value.
bis the max value.
valueis a value in [0.0, 1.0].
Returns
It returns - 2 x^3 + 3 x^2.

◆ sqrtf_s()

PIC_INLINE float pic::sqrtf_s ( float  x)

sqrtf_s

Parameters
x
Returns

◆ square()

PIC_INLINE float pic::square ( float  x)

Square applies square function to a value.

Parameters
xa value.
Returns
It return x^2.

◆ stdStringRep()

std::string pic::stdStringRep ( std::string  str,
std::string  strSub,
std::string  strRep 
)
inline

stdStringRep replaces strSub in str with strRep just once.

Parameters
stris the input string.
strSubis the substring to find in str.
strRepis the string for replacing strSub.
Returns
It returns str where strSub is replaced with strRep.

◆ stdStringRepAll()

std::string pic::stdStringRepAll ( std::string  str,
std::string  strSub,
std::string  strRep 
)
inline

stdStringRepAll replaces all strSub in str with strRep.

Parameters
str
strSub
strRep
Returns

◆ stdVectorArrayClear()

template<class T >
void pic::stdVectorArrayClear ( std::vector< T *> &  vec)
inline

stdVectorArrayClear

Parameters
vec

◆ stdVectorClear()

template<class T >
void pic::stdVectorClear ( std::vector< T *> &  vec)
inline

stdVectorClear

Parameters
vec

◆ timeGetTime()

PIC_INLINE int pic::timeGetTime ( )

◆ transferFromPlainToVec()

template<uint N, class T >
void pic::transferFromPlainToVec ( std::vector< T > &  in,
std::vector< Vec< N, T > > &  out 
)

◆ transferFromVecToPlain()

template<uint N, class T >
void pic::transferFromVecToPlain ( std::vector< Vec< N, T > > &  in,
std::vector< T > &  out 
)

◆ triangulationHartleySturm()

PIC_INLINE Eigen::Vector4d pic::triangulationHartleySturm ( Eigen::Vector3d &  point_0,
Eigen::Vector3d &  point_1,
Eigen::Matrix34d &  M0,
Eigen::Matrix34d &  M1,
int  maxIter = 100 
)

triangulationHartl Sturm

Parameters
point_0
point_1
R
t
Returns

◆ triangulationLonguetHiggins()

PIC_INLINE Eigen::Vector3d pic::triangulationLonguetHiggins ( Eigen::Vector3d &  point_0,
Eigen::Vector3d &  point_1,
Eigen::Matrix3d &  R,
Eigen::Vector3d &  t 
)

triangulationLonguetHiggins computes triangulation using Longuet-Higgins equations.

Parameters
point_0is the point from the first view that matches point_1
point_1is the point from the second view that matches point_0
Ris the rotation matrix between the two views.
tis the translation matrix between the two views.
Returns

◆ triangulationPoints()

PIC_INLINE void pic::triangulationPoints ( Eigen::Matrix34d &  M0,
Eigen::Matrix34d &  M1,
std::vector< Eigen::Vector2f > &  m0f,
std::vector< Eigen::Vector2f > &  m1f,
std::vector< Eigen::Vector3d > &  points_3d,
std::vector< unsigned char > &  colors,
Image img0 = NULL,
Image img1 = NULL,
bool  bColor = false 
)

triangulationPoints

Parameters
M0
M1
m0f
m1f
points_3d
colors
bColor

◆ Triple()

PIC_INLINE ImageVec pic::Triple ( Image img1,
Image img2,
Image img3 
)

Triple creates an std::vector which contains img1, img2, and img3; this is for filters input.

Parameters
img1is a pointer to a pic::Image
img2is a pointer to a pic::Image
img3is a pointer to a pic::Image
Returns
It returns an std::vector which contains img1, img2, and img3.

◆ TripleGL()

PIC_INLINE ImageGLVec pic::TripleGL ( ImageGL img1,
ImageGL img2,
ImageGL img3 
)

TripleGL creates a triple for filters input.

Parameters
img1
img2
img3
Returns

◆ TripleInt()

PIC_INLINE std::vector<int> pic::TripleInt ( int  v0,
int  v1,
int  v2 
)

TripleInt.

Parameters
v0
v1
v2
Returns

◆ twoByteToValue()

unsigned int pic::twoByteToValue ( unsigned char  data[2],
bool  bMotorola 
)

twoByteToValue

Parameters
data
bMotorola
Returns

◆ vecGamma()

template<uint N>
void pic::vecGamma ( Vec< N, float > &  ret,
float  g 
)

◆ vecrint()

template<uint N>
void pic::vecrint ( Vec< N, float > &  ret)

◆ vecSqrt()

template<uint N>
void pic::vecSqrt ( Vec< N, float > &  ret)

◆ vecValOver()

template<uint N>
Vec<N, float> pic::vecValOver ( Vec< N, float > &  in,
float  value 
)

◆ warpGaussianDistribution()

PIC_INLINE float pic::warpGaussianDistribution ( float  u0,
float  u1,
float  mu,
float  sigma 
)

warpGaussianDistribution

Parameters
u0
u1
mu
sigma
Returns

◆ warpNormalDistribution()

PIC_INLINE float pic::warpNormalDistribution ( float  u0,
float  u1 
)

warpNormalDistribution warps from uniform distribution to a normal distribution

Parameters
u1
u2

◆ warpSquareCircle()

PIC_INLINE void pic::warpSquareCircle ( float  x,
float  y,
float *  xo,
float *  yo 
)

warpSquareCircle warps from a square to a circle distribution.

Parameters
x
y
xo
yo

◆ weightFunction()

PIC_INLINE float pic::weightFunction ( float  x,
CRF_WEIGHT  type 
)

weightFunction computes weight functions for x in [0,1].

Parameters
xis an input value in [0, 1].
typeis the type of the function.
Returns
It returns a weight for x.

◆ WriteBMP()

PIC_INLINE bool pic::WriteBMP ( std::string  nameFile,
const unsigned char *  data,
int  width,
int  height,
int  channels 
)

WriteBMP writes an image as a .bmp file.

Parameters
nameFile
data
width
height
channels
Returns

◆ WriteEXR()

PIC_INLINE bool pic::WriteEXR ( std::string  nameFile,
float *  data,
int  width,
int  height,
int  channels = 3 
)

WriteEXR.

Parameters
nameFile
data
width
height
channels
Returns

◆ WriteHDR()

PIC_INLINE bool pic::WriteHDR ( std::string  nameFile,
float *  data,
int  width,
int  height,
int  channels,
float  appliedExposure = 1.0f,
bool  bRLE = true 
)

WriteHDR writes a .hdr/.pic file.

Parameters
nameFile
data
width
height
channels
appliedExposure
bRLE
Returns

◆ WriteHDRBlock()

PIC_INLINE bool pic::WriteHDRBlock ( std::string  nameFile,
float *  buffer_line,
int  width,
int  height,
int  channels,
int  blockID,
int  nBlocks 
)

WriteHDRBlock writes a .hdr file.

Parameters
nameFile
buffer_line
width
height
channels
blockID
nBlocks
Returns

◆ WriteLineHDR()

PIC_INLINE void pic::WriteLineHDR ( FILE *  file,
unsigned char *  buffer_line,
int  width 
)

WriteLineHDR writes a scanline of an image using RLE and RGBE encoding.

Parameters
file
buffer_line
width

◆ writeMatrix34dToFile()

PIC_INLINE bool pic::writeMatrix34dToFile ( std::string  nameFile,
Eigen::Matrix34d &  mat 
)

writeMatrix34dToFile

Parameters
nameFile
mat
Returns

◆ WritePFM()

PIC_INLINE bool pic::WritePFM ( std::string  nameFile,
float *  data,
int  width,
int  height,
int  channels = 3 
)

WritePFM writes an HDR image in the portable float map format into a file.

Parameters
nameFile
data
width
height
channels
Returns

◆ WritePGM()

PIC_INLINE bool pic::WritePGM ( std::string  nameFile,
const unsigned char *  data,
int  width,
int  height,
int  channels,
bool  bAscii = false 
)

WritePGM writes an .ppm file.

Parameters
nameFile
data
width
height
channels
bAscii
Returns

◆ WritePPM()

PIC_INLINE bool pic::WritePPM ( std::string  nameFile,
const unsigned char *  data,
int  width,
int  height,
int  channels 
)

WritePPM writes an .ppm file.

Parameters
nameFile
data
width
height
channels
Returns

◆ writeSimplePLY()

PIC_INLINE bool pic::writeSimplePLY ( std::string  name,
std::vector< Eigen::Vector3d > &  points_3d,
std::vector< unsigned char > &  colors 
)

◆ WriteSTB()

PIC_INLINE bool pic::WriteSTB ( std::string  nameFile,
unsigned char *  data,
int  width,
int  height,
int  channels = 3 
)

WriteSTB.

Parameters
nameFile
data
width
height
channels
Returns

◆ WriteTGA()

PIC_INLINE bool pic::WriteTGA ( std::string  nameFile,
const unsigned char *  data,
int  width,
int  height,
int  channels 
)

WriteTGA writes an image in the .tga format.

Parameters
nameFile
data
width
height
channels
Returns

◆ WriteTMP()

PIC_INLINE bool pic::WriteTMP ( std::string  nameFile,
float *  data,
int &  width,
int &  height,
int &  channels,
int &  frames,
bool  bHeader = true 
)

WriteTMP writes a dump temp file.

Parameters
nameFile
data
width
height
channels
frames
bHeader
Returns

◆ WriteVOL()

PIC_INLINE bool pic::WriteVOL ( std::string  nameFile,
float *  data,
int  width,
int  height,
int  depth,
int  channels = 3 
)

WriteVOL.

Parameters
nameFile
data
width
height
depth
channels
Returns

Variable Documentation

◆ BLACK

const Color3 pic::BLACK = Color3(0.0f, 0.0f, 0.0f)

◆ BLUE

const Color3 pic::BLUE = Color3(0.0f, 0.0f, 1.0f)

◆ C_CIELAB_C1

const float pic::C_CIELAB_C1 = 7.787037037037037037037037037037f

◆ C_CIELAB_C1_INV

const float pic::C_CIELAB_C1_INV = 0.12841854934601664684898929845422f

◆ C_EPSILON

const float pic::C_EPSILON = 1e-6f

◆ C_FOUR_OVER_TWENTY_NINE

const float pic::C_FOUR_OVER_TWENTY_NINE = 0.13793103448275862068965517241379f

◆ C_INV_LOG_NAT_2

const float pic::C_INV_LOG_NAT_2 = 1.4426950408889634073599246810019f

◆ C_INV_LOG_NAT_2_D

const double pic::C_INV_LOG_NAT_2_D = 1.4426950408889634073599246810019

◆ C_INV_PI

const float pic::C_INV_PI = 0.31830988618379067153776526745f

◆ C_INV_PI_2

const float pic::C_INV_PI_2 = 0.159154943091895335768883763f

◆ C_INV_PI_4

const float pic::C_INV_PI_4 = 0.07957747154594766788444188168626f

◆ C_LARGE_DIFFERENCES

const double pic::C_LARGE_DIFFERENCES = 1e6

◆ C_LARGE_DIFFERENCESf

const float pic::C_LARGE_DIFFERENCESf = 1e6f

◆ C_LOG_NAT_2

const float pic::C_LOG_NAT_2 = 0.69314718055994530941723212145818f

◆ C_ONE_80_OVER_PI

const float pic::C_ONE_80_OVER_PI = 57.295779513082320876798154814105f

◆ C_PI

const float pic::C_PI = 3.1415926535897932384626433832795f

◆ C_PI_025

const float pic::C_PI_025 = 0.78539816339744830961566084581988f

◆ C_PI_05

const float pic::C_PI_05 = 1.5707963267948966192313216916398f

◆ C_PI_2

const float pic::C_PI_2 = 6.283185307179586476925286766559f

◆ C_PI_2_2

const float pic::C_PI_2_2 = 19.739208802178717237668981999752f

◆ C_PI_4

const float pic::C_PI_4 = 12.566370614359172953850573533118f

◆ C_PI_OVER_ONE_80

const float pic::C_PI_OVER_ONE_80 = 0.017453292519943295769236907685f

◆ C_PU_x

float pic::C_PU_x[256]

◆ C_PU_y

float pic::C_PU_y[256]

◆ C_SINGULARITY

const double pic::C_SINGULARITY = 1e-6

◆ C_SIX_OVER_TWENTY_NINE

const float pic::C_SIX_OVER_TWENTY_NINE = 0.20689655172413793103448275862069f

◆ C_SIX_OVER_TWENTY_NINE_CUBIC

const float pic::C_SIX_OVER_TWENTY_NINE_CUBIC = 0.00885645167903563081717167575546f

◆ C_SQRT_2

const float pic::C_SQRT_2 = 1.4142135623730950488016887242097f

◆ CONST_DARTTHROWING

const int pic::CONST_DARTTHROWING = 5000

◆ GREEN

const Color3 pic::GREEN = Color3(0.0f, 1.0f, 0.0f)

◆ mtxLMStoXYZ

const float pic::mtxLMStoXYZ[]
Initial value:
= { 1.9102f, -1.112f, 0.2019f,
0.3709f, 0.6291f, 5.1332e-6f,
0.0f, 0.0f, 1.0f
}

◆ mtxRGBtoXYZ

const float pic::mtxRGBtoXYZ[]
Initial value:
= { 0.4124f, 0.3576f, 0.1805f,
0.2126f, 0.7152f, 0.0722f,
0.0193f, 0.1192f, 0.9505f
}

◆ mtxXYZtoLMS

const float pic::mtxXYZtoLMS[]
Initial value:
= { 0.3897f, 0.6890f, -0.0787f,
-0.2298f, 1.1834f, 0.0464f,
0.0f, 0.0f, 1.0f
}

◆ mtxXYZtoRGB

const float pic::mtxXYZtoRGB[]
Initial value:
= { 3.2406f, -1.5372f, -0.4986f,
-0.9689f, 1.8758f, 0.0415f,
0.0557f, -0.2040f, 1.0570f
}

◆ POISSON_RHO

const float pic::POISSON_RHO = 0.75f

◆ RED

const Color3 pic::RED = Color3(1.0f, 0.0f, 0.0f)

◆ WHITE

const Color3 pic::WHITE = Color3(1.0f, 1.0f, 1.0f)