libcvd
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
CVD Namespace Reference

All classes and functions are within the CVD namespace. More...

Namespaces

 Camera
 Classes which represent camera calibrations.
 
 ColourSpace
 Internal colourspace conversions.
 
 DC
 Internal DVBuffer2 helpers.
 
 DV3
 Internal DVBuffer3 helpers.
 
 Exceptions
 All exceptions thrown by CVD objects and functions are contained within this namespace.
 
 ImageError
 Fatal image errors (used for debugging).
 
 ImageType
 Contains the enumeration of possible image types.
 
 Interpolate
 Classes used to specify the interpolation type for image_interpolate.
 
 Morphology
 Image morphology operations.
 
 VFB
 Internal VideoFileBuffer helpers.
 
 VideoBufferFlags
 Flags common to several different VideoBuffer classes.
 

Classes

class  Argb
 A colour consisting of red, green, blue and alpha components. More...
 
class  BasicImage
 A generic image class to manage a block of arbitrarily padded data as an image. More...
 
class  BasicImageIterator
 
struct  bayer_bggr
 Bayer datatype representing the colour filter pattern BGGR. More...
 
struct  bayer_bggr16
 16 bit Bayer datatype representing the colour filter pattern BGGR More...
 
struct  bayer_bggr16be
 16 bit big endian Bayer datatype representing the colour filter pattern BGGR More...
 
struct  bayer_gbrg
 Bayer datatype representing the colour filter pattern GBRG. More...
 
struct  bayer_gbrg16
 16bit Bayer datatype representing the colour filter pattern GBRG More...
 
struct  bayer_gbrg16be
 16bit big endian Bayer datatype representing the colour filter pattern GBRG More...
 
struct  bayer_grbg
 Bayer datatype representing the colour filter pattern GRBG. More...
 
struct  bayer_grbg16
 16bit Bayer datatype representing the colour filter pattern GRBG More...
 
struct  bayer_grbg16be
 16bit big endian Bayer datatype representing the colour filter pattern GRBG More...
 
struct  bayer_rggb
 Bayer datatype representing the colour filter pattern RGGB. More...
 
struct  bayer_rggb16
 16bit Bayer datatype representing the colour filter pattern RGGB More...
 
struct  bayer_rggb16be
 16bit big endian Bayer datatype representing the colour filter pattern RGGB More...
 
class  Bgrx
 A colour consisting of red, green, blue and dummy components, in the order bgr dummy in memory. More...
 
struct  BitCheck
 
struct  BitCheck< N, N >
 
class  BlurAppearance
 Blur appearance model that assumes that the input image was subject to blur. More...
 
class  Brezenham
 Class to implement the Bresenham line-drawing algorithm. More...
 
class  Brezenham8
 Class to implement the Bresenham line-drawing algorithm. More...
 
class  CameraRotation
 a special implementation for 2D homography-based transformations described as a camera rotating around its centre. More...
 
struct  CastCopy
 
struct  CastCopy< T, T >
 
struct  collect_pos
 
struct  collect_score
 
struct  color
 traits type defining colors for pixel types More...
 
struct  color< T, 1 >
 traits type defining colors for pixel types. More...
 
struct  color< T, 3 >
 traits type defining colors for pixel types. More...
 
struct  Colourmap
 
struct  Colourmap< Rgb< C > >
 Handy class for generating a colourscale. More...
 
class  ColourspaceBuffer
 A decorator class which wraps a VideoBuffer to perfrom colourspace conversion on the incoming data. More...
 
class  ColourspaceBuffer_managed
 This is just like ColourspaceBuffer, except it deleted the videobuffer on destruction. More...
 
class  ColourspaceFrame
 A frame from a ColourspaceBuffer. Can be treated as a VideoFrame. More...
 
struct  CompareFistIntLessThan
 
struct  ConvertImage
 
struct  ConvertImage< Rgb< byte >, byte, Pixel::CIE< Rgb< byte >, byte >, 1 >
 
struct  ConvertImage< T, T, Pixel::GenericConversion< T, T >, 1 >
 
struct  ConvolveMiddle
 
struct  ConvolveMiddle< T, -1, 1 >
 
struct  ConvolveMiddle< T, -1, C >
 
struct  ConvolveMiddle< T, 0, 1 >
 
struct  ConvolveMiddle< T, N, 1 >
 
struct  CornerNegative
 
struct  CornerPositive
 
class  cvd_timer
 Provides the time elapsed in seconds. More...
 
class  DeinterlaceBuffer
 
struct  DeinterlaceBufferFields
 A decorator class which wraps a VideoBuffer to return fields instead of the original frames (see also DeinterlaceFrame). More...
 
class  DeinterlaceFrame
 A frame from a DeinterlaceBuffer, representing one field from an interlaced frame. More...
 
class  DiskBuffer2
 Play a series of image files as a video stream. More...
 
class  DiskBuffer2Frame
 A frame from a DiskBuffer2. More...
 
class  DistanceTransformEuclidean
 
class  DVBuffer2
 A video buffer from a Firewire (IEEE 1394) camera. More...
 
class  DVBuffer3
 A video buffer from a Firewire (IEEE 1394) camera. More...
 
class  DVFrame
 A frame from a Firewire (IEEE 1394) camera via DVBuffer2. More...
 
class  ESMEstimator
 The main class for the ESM module. More...
 
struct  ESMResult
 Result class storing some information about the optimization. More...
 
struct  GetPixelRowTyped
 
struct  GetPixelRowTyped< T, T >
 
class  GLWindow
 An object that creates a window and a GL context attached to that window, and manages its events. More...
 
struct  Gradient
 
struct  Gradient< S, T, 1, 2 >
 
struct  Greater
 
struct  GreaterEqual
 
class  handleholder
 
class  Homography
 a generic implementation for 2D homography-based transformations parameterized by a 3x3 matrix with determinant == 1. More...
 
class  HomographyPrefix
 This class provides a generic 2D homography transformation, but also applies a fixed transformation on the input pixel locations. More...
 
class  Image
 A full image which manages its own data. More...
 
class  image_interpolate
 
class  image_interpolate< Interpolate::Bicubic, T >
 
class  image_interpolate< Interpolate::Bilinear, T >
 
class  image_interpolate< Interpolate::NearestNeighbour, C >
 
class  ImageRef
 
struct  IsConvertible
 Can two types be converted with CVD::convert_image? More...
 
struct  IsConvertible< bayer_bggr, byte >
 
struct  IsConvertible< bayer_bggr, Rgb< byte > >
 
struct  IsConvertible< bayer_bggr16, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_bggr16, unsigned short >
 
struct  IsConvertible< bayer_bggr16be, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_bggr16be, unsigned short >
 
struct  IsConvertible< bayer_gbrg, byte >
 
struct  IsConvertible< bayer_gbrg, Rgb< byte > >
 
struct  IsConvertible< bayer_gbrg16, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_gbrg16, unsigned short >
 
struct  IsConvertible< bayer_gbrg16be, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_gbrg16be, unsigned short >
 
struct  IsConvertible< bayer_grbg, byte >
 
struct  IsConvertible< bayer_grbg, Rgb< byte > >
 
struct  IsConvertible< bayer_grbg16, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_grbg16, unsigned short >
 
struct  IsConvertible< bayer_grbg16be, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_grbg16be, unsigned short >
 
struct  IsConvertible< bayer_rggb, byte >
 
struct  IsConvertible< bayer_rggb, Rgb< byte > >
 
struct  IsConvertible< bayer_rggb16, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_rggb16, unsigned short >
 
struct  IsConvertible< bayer_rggb16be, Rgb< unsigned short > >
 
struct  IsConvertible< bayer_rggb16be, unsigned short >
 
struct  IsConvertible< MJPEG, Rgb< byte > >
 
struct  IsConvertible< yuv420p, byte >
 
struct  IsConvertible< yuv420p, Rgb< byte > >
 
struct  IsConvertible< yuv422, byte >
 
struct  IsConvertible< yuv422, Rgb< byte > >
 
class  La
 A colour consisting of luminance and alpha components. More...
 
struct  La_ops
 
struct  Less
 
class  LocalVideoBuffer
 Base class for a VideoBuffer which manages its own memory for each VideoFrame that it provides. More...
 
class  LocalVideoFrame
 A frame from a LocalVideoBuffer, which manages its own data rather than wrapping data owned by the system. More...
 
struct  MakeConverter
 
struct  MakeConverter< Out, In, false >
 
struct  MakeConverter< T, T, true >
 
struct  makeDeinterlaceBuffer
 
struct  makeDeinterlaceBuffer< T, 0 >
 
struct  makeDiskBuffer2
 
struct  makeJPEGStream
 
struct  makeJPEGStream< T, false >
 
struct  makeSkipBuffer
 
class  MakeSummary
 
struct  MJPEG
 A datatype to represent MJPEG data. More...
 
struct  MMX_funcs
 
struct  multiplyBy
 a functor multiplying pixels with constant value. More...
 
class  OffsetAppearance
 Simple appearance model that assumes a constant offset in the intensities of the image vs. More...
 
class  Parameter
 Class for holding parameters for image savers, with type erasure. More...
 
class  Parameter< Internal::UntypedParameter >
 
class  Parameter< void >
 
struct  ParseException
 
struct  PixelByPixelConvertible
 Can individual pixels of two types be converted with ConvertPixels::convert()? E.g. More...
 
struct  PixelByPixelConvertible< InOut, InOut >
 Identity conversion by memcpy is always supported. More...
 
struct  PixFmt
 
struct  PixFmt< byte >
 
struct  PixFmt< Rgb< byte > >
 
class  RawVideoBuffer
 Base class which provides untyped access to video grabber objects. More...
 
class  Rgb
 A colour consisting of red, green and blue components. More...
 
struct  Rgb8
 A 32-bit colour. More...
 
struct  Rgb_ops
 
class  Rgba
 A colour consisting of red, green, blue and alpha components. More...
 
struct  Rgba_ops
 
class  RotationEstimator
 a specialization of ESMEstimator for pure camera rotation only. More...
 
class  SaveEvents
 
class  ServerPushJpegBuffer
 Play a server push stream as a video stream. More...
 
class  ServerPushJpegFrame
 
class  SimpleTimer
 Provides a simple timer class which uses cvd_timer internally. More...
 
class  SkipBuffer
 A decorator class which wraps a VideoBuffer to skip frames. More...
 
struct  SSE2_funcs
 
struct  SSE_funcs
 
class  StaticAppearance
 Basic appearance model implementing no change in the image. More...
 
struct  SumSquaredDifferences
 
class  TimedDiskBuffer
 Play a series of image files as a video stream and use a list of provided timestamps. More...
 
class  UVCBuffer
 A live video buffer which uses the Video for Linux 2 (V4L2) API. More...
 
class  V4LBuffer
 A live video buffer which uses the Video for Linux 2 (V4L2) API. More...
 
class  V4LControl
 exposes the V4L2 API to set parameters on a capture device. More...
 
class  VideoBuffer
 Base class for objects which provide a typed video stream. More...
 
struct  VideoBufferType
 The semsntics of the videobuffer. See VideoFrame::type() More...
 
class  VideoBufferWithData
 Certain video buffers, especially the decorator classes, and buffers such as ServerPushJpegBuffer have additional data with the same lifetime as the buffer. More...
 
class  VideoDisplay
 A cheap and cheerful GL display window using X and the GLX library. More...
 
class  VideoFileBuffer
 A video buffer to play frames from a video file. More...
 
class  VideoFileFrame
 A frame from a VideoFileBuffer. More...
 
class  VideoFrame
 A frame from a VideoBuffer. More...
 
class  VideoReader
 
class  VideoReaderFileBuffer
 
struct  VideoSource
 
struct  VideoSourceException
 
class  VideoWriter
 
class  VPrint
 
class  VPrint_
 
struct  vuy422
 A datatype to represent the other yuv422 (uyvy) data. More...
 
struct  YC
 
struct  yuv411
 A datatype to represent yuv411 (uyyvyy) data, typically from firewire cameras. More...
 
struct  yuv420p
 A datatype to represent yuv420p (yy...u...v) data. More...
 
struct  yuv422
 A datatype to represent yuv422 (yuyv) data. More...
 
struct  ZeroPixel
 
struct  ZeroPixel< T, true >
 
struct  ZeroPixels
 
struct  ZeroPixels< T, true >
 

Typedefs

typedef Brezenham Bresenham
 Alternative (and correct) spelling for this object.
 
typedef Brezenham8 Bresenham8
 Alternative (and correct) spelling for this object.
 
typedef unsigned char byte
 An 8-bit datatype.
 
typedef bayer_bggr bayer
 typedef to support old bayer datatype More...
 
template<class C >
using SubImage = BasicImage< C >
 
typedef DVBuffer2< byteDVBuffer
 An 8-bit greyscale video buffer from a Firewire (IEEE 1394) camera. More...
 
typedef const char fourcc_string[5]
 

Enumerations

enum  TEXT_STYLE {
  FILL = 0, OUTLINE = 1, NICE = 2, FILL = 0,
  OUTLINE = 1, NICE = 2
}
 different style for font rendering More...
 
enum  TEXT_STYLE {
  FILL = 0, OUTLINE = 1, NICE = 2, FILL = 0,
  OUTLINE = 1, NICE = 2
}
 different style for font rendering More...
 

Functions

template<class T >
SAT (T x)
 
template<class T >
void canny_gradient (const BasicImage< T > &im, BasicImage< TooN::Vector< 2 >> &grad, const double sigma=1.0)
 
template<class T >
void canny (const BasicImage< T > &im, BasicImage< T > &out, const double sigma=1.0, const double lower_threshold=0.1, const double upper_threshold=0.2)
 
template<class T >
void canny2 (const BasicImage< T > &im, BasicImage< T > &out, double sigma=1.0, double lower_threshold=0.1, double upper_threshold=0.2)
 
template<class T >
void compute_gradient_direction_at (const BasicImage< T > &in, const BasicImage< T > &mask, const double threshold, BasicImage< T > &grad_dir_map)
 
template<>
void convert_image (const BasicImage< bayer_bggr > &from, BasicImage< byte > &to)
 Convert Bayer pattern of various forms to greyscale data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg > &from, BasicImage< byte > &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg > &from, BasicImage< byte > &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb > &from, BasicImage< byte > &to)
 
template<>
void convert_image (const BasicImage< bayer_bggr > &from, BasicImage< Rgb< byte >> &to)
 Convert Bayer pattern of various forms to rgb data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg > &from, BasicImage< Rgb< byte >> &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg > &from, BasicImage< Rgb< byte >> &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb > &from, BasicImage< Rgb< byte >> &to)
 
template<>
void convert_image (const BasicImage< bayer_bggr16 > &from, BasicImage< unsigned short > &to)
 Convert 16bit Bayer pattern of various forms to greyscale data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg16 > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg16 > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb16 > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_bggr16 > &from, BasicImage< Rgb< unsigned short >> &to)
 Convert 16bit Bayer pattern of various forms to rgb data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg16 > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg16 > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb16 > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< bayer_bggr16be > &from, BasicImage< unsigned short > &to)
 Convert 16bit big endian Bayer pattern of various forms to greyscale data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg16be > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg16be > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb16be > &from, BasicImage< unsigned short > &to)
 
template<>
void convert_image (const BasicImage< bayer_bggr16be > &from, BasicImage< Rgb< unsigned short >> &to)
 Convert 16bit big endian Bayer pattern of various forms to rgb data. More...
 
template<>
void convert_image (const BasicImage< bayer_grbg16be > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< bayer_gbrg16be > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< bayer_rggb16be > &from, BasicImage< Rgb< unsigned short >> &to)
 
template<>
void convert_image (const BasicImage< MJPEG > &from, BasicImage< Rgb< byte >> &to)
 
template<>
void convert_image (const BasicImage< yuv422 > &from, BasicImage< Rgb< byte >> &to)
 Convert YUV 411 pixel data to RGB. More...
 
template<>
void convert_image (const BasicImage< yuv422 > &from, BasicImage< byte > &to)
 Convert YUV 422 pixel data to Y only. More...
 
template<>
void convert_image (const BasicImage< vuy422 > &from, BasicImage< Rgb< byte >> &to)
 Convert YUV 411 pixel data to both Y and RGB. More...
 
template<>
void convert_image (const BasicImage< vuy422 > &from, BasicImage< byte > &to)
 Convert VUY 422 pixel data to Y only. More...
 
template<>
void convert_image (const BasicImage< yuv420p > &from, BasicImage< Rgb< byte >> &to)
 Convert YUV420p pixel data to RGB. More...
 
template<>
void convert_image (const BasicImage< yuv420p > &from, BasicImage< byte > &to)
 Convert YUV420p pixel data to Y only. More...
 
void connected_components (const std::vector< ImageRef > &v, std::vector< std::vector< ImageRef >> &r)
 Find the connected components of the input, using 4-way floodfill. More...
 
template<class Conv , class C , class D >
void convert_image (const BasicImage< C > &from, BasicImage< D > &to)
 
template<class C , class D >
void convert_image (const BasicImage< C > &from, BasicImage< D > &to)
 
template<class D , class Conv , class C >
Image< D > convert_image (const BasicImage< C > &from)
 Convert an image from one type to another using a specified conversion. More...
 
template<class D , class C >
Image< D > convert_image (const BasicImage< C > &from)
 Convert an image from one type to another using the default. More...
 
template<class D1 , class D2 , class C >
std::pair< Image< D1 >, Image< D2 > > convert_image_pair (const BasicImage< C > &from)
 Convert an image from one type to another using the default, returning a pair of images. More...
 
template<class C >
Internal::ImagePromise< Internal::ImageConverter< C > > convert_image (const BasicImage< C > &c)
 
template<class T >
gaussianKernel (std::vector< T > &k, T maxval, double stddev)
 creates a Gaussian kernel with given maximum value and standard deviation. More...
 
template<class S , class T >
scaleKernel (const std::vector< S > &k, std::vector< T > &scaled, T maxval)
 scales a GaussianKernel to a different maximum value. More...
 
template<class T >
void convolveGaussian5_1 (BasicImage< T > &I)
 
template<class T >
void convolveWithBox (const BasicImage< T > &I, BasicImage< T > &J, ImageRef hwin)
 convolves an image with a box of given size. More...
 
template<class T >
void convolveWithBox (const BasicImage< T > &I, BasicImage< T > &J, int hwin)
 
template<class T >
void convolveWithBox (BasicImage< T > &I, int hwin)
 
template<class T >
void convolveWithBox (BasicImage< T > &I, ImageRef hwin)
 
template<class T , int A, int B, int C>
void convolveSymmetric (Image< T > &I)
 
template<class T , int A, int B, int C, int D>
void convolveSymmetric (Image< T > &I)
 
template<class T , class K >
void convolveSeparableSymmetric (Image< T > &I, const std::vector< K > &kernel, K divisor)
 
template<class A , class B >
const B * getPixelRowTyped (const A *row, int n, B *rowbuf)
 
template<class T , class S >
void cast_copy (const T *from, S *to, int count)
 
template<class T , class S >
const T * convolveMiddle (const T *input, const S &factor, const S *kernel, int ksize, int n, T *output)
 
template<class T >
void convolveGaussian (BasicImage< T > &I, double sigma, double sigmas=3.0)
 
template<class T >
void convolveGaussian (const BasicImage< T > &I, BasicImage< T > &out, double sigma, double sigmas=3.0)
 
void compute_van_vliet_b (double sigma, double b[])
 
void compute_triggs_M (const double b[], double M[][3])
 
void van_vliet_blur (const double b[], const BasicImage< float > in, BasicImage< float > out)
 
void convolveGaussian (const BasicImage< float > &I, BasicImage< float > &out, double sigma, double sigmas=3.0)
 
void convolveGaussian_fir (const BasicImage< float > &I, BasicImage< float > &out, double sigma, double sigmas=3.0)
 
template<class T , class O , class K >
void convolve_gaussian_3 (const BasicImage< T > &I, BasicImage< O > &out, K k1, K k2)
 
std::vector< std::string > globlist (const std::string &gl)
 Make a list of strings from a UNIX-style pattern pathname expansion. More...
 
template<class T , class Q >
void euclidean_distance_transform_sq (const BasicImage< T > &in, BasicImage< Q > &out)
 Compute squared Euclidean distance transform using the Felzenszwalb & Huttenlocher algorithm. More...
 
template<class T , class Q >
void euclidean_distance_transform_sq (const BasicImage< T > &in, BasicImage< Q > &out, BasicImage< ImageRef > &lookup_DT)
 Compute squared Euclidean distance transform using the Felzenszwalb & Huttenlocher algorithm. More...
 
template<class T , class Q >
void euclidean_distance_transform (const BasicImage< T > &in, BasicImage< Q > &out)
 Compute Euclidean distance transform using the Felzenszwalb & Huttenlocher algorithm. More...
 
template<class T , class Q >
void euclidean_distance_transform (const BasicImage< T > &in, BasicImage< Q > &out, BasicImage< ImageRef > &lookup_DT)
 Compute Euclidean distance transform using the Felzenszwalb & Huttenlocher algorithm. More...
 
template<class T >
Internal::ImagePromise< Internal::DoDistanceTransform< T > > euclidean_distance_transform (const BasicImage< T > &in)
 
template<class T >
void drawLine (BasicImage< T > &im, double x1, double y1, double x2, double y2, const T &c)
 draws a line defined by start and end coordinates with given color into an image. More...
 
template<class T >
void drawLine (BasicImage< T > &im, const ImageRef &p1, const ImageRef &p2, const T &c)
 draws a line defined by two ImageRef with given color into an image. More...
 
template<class T >
void drawShape (BasicImage< T > &im, const ImageRef &offset, const std::vector< ImageRef > &points, const T &c)
 draws a polyline defined by a set of points into an image. More...
 
template<class T , class PointIterator >
void drawShape (Image< T > &im, const ImageRef &offset, PointIterator begin, PointIterator end, const T &c)
 draws a polyline defined by a set of points into an image. More...
 
template<class T >
void drawBox (BasicImage< T > &im, const ImageRef &upperleft, const ImageRef &lowerright, const T &c)
 draws a box defined by the upper left and the lower right corners into an image More...
 
template<class T >
void drawCross (BasicImage< T > &im, const ImageRef &p, double len, const T &c)
 draws a cross defined by center point and length of the arms into an image More...
 
std::vector< ImageRefgetCircle (int radius)
 returns coordinate for a circle of given radius around the origin. More...
 
std::vector< ImageRefgetDisc (double radius)
 returns coordinate for a disc of given radius around the origin. More...
 
template<class S , class T , class U >
void joinImages (const Image< S > &a, const Image< T > &b, Image< U > &J)
 joins two images side-by-side to create a larger image, any remaining empty region will be blacked out More...
 
template<class S , class T , class U >
void combineImages (const Image< S > &a, const Image< T > &b, Image< U > &out, const ImageRef &dst=ImageRef_zero, ImageRef size=ImageRef(), const ImageRef &from=ImageRef_zero)
 similar to copy but combines values from two source images into the output image. More...
 
std::ostream & operator<< (std::ostream &out, const ESMResult &r)
 
template<typename P >
TooN::Matrix< 3, 3, P > scaleHomography (const TooN::Matrix< 3, 3, P > &H, const P &f)
 
template<int PARAMS>
std::ostream & operator<< (std::ostream &out, const Homography< PARAMS > &t)
 
template<int PARAMS>
std::ostream & operator<< (std::ostream &out, const HomographyPrefix< PARAMS > &t)
 
std::ostream & operator<< (std::ostream &out, const StaticAppearance &t)
 
std::ostream & operator<< (std::ostream &out, const OffsetAppearance &t)
 
std::ostream & operator<< (std::ostream &out, const BlurAppearance &t)
 
void fast_nonmax (const BasicImage< byte > &im, const std::vector< ImageRef > &corners, int barrier, std::vector< ImageRef > &max_corners)
 Perform non-maximal suppression on a set of FAST features. More...
 
void fast_nonmax_with_scores (const BasicImage< byte > &im, const std::vector< ImageRef > &corners, int barrier, std::vector< std::pair< ImageRef, int >> &max_corners)
 Perform non-maximal suppression on a set of FAST features, also returning the score for each remaining corner. More...
 
void fast_corner_detect_7 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 7 point FAST feature detection. More...
 
void fast_corner_score_7 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 7 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
void fast_corner_detect_8 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 8 point FAST feature detection. More...
 
void fast_corner_score_8 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 8 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
void fast_corner_detect_9 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 9 point FAST feature detection as described in: Machine Learning for High Speed Corner Detection, E. More...
 
void fast_corner_score_9 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 9 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
void fast_corner_detect_9_nonmax (const BasicImage< byte > &im, std::vector< ImageRef > &max_corners, int barrier)
 Perform FAST-9 corner detection (see fast_corner_detect_9), with nonmaximal suppression (see fast_corner_score_9 and nonmax_suppression) More...
 
void fast_corner_detect_10 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 10 point FAST feature detection If you use this, please cite the paper given in fast_corner_detect. More...
 
void fast_corner_score_10 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 10 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
void fast_corner_detect_11 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 11 point FAST feature detection If you use this, please cite the paper given in fast_corner_detect_9. More...
 
void fast_corner_score_11 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 11 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
void fast_corner_detect_12 (const BasicImage< byte > &im, std::vector< ImageRef > &corners, int barrier)
 Perform tree based 12 point FAST feature detection If you use this, please cite the paper given in fast_corner_detect_9. More...
 
void fast_corner_score_12 (const BasicImage< byte > &i, const std::vector< ImageRef > &corners, int b, std::vector< int > &scores)
 Compute the 11 point score (as the maximum threshold at which the point will still be detected) for a std::vector of features. More...
 
int three_point_pose (const std::array< TooN::Vector< 3 >, 3 > &x, const std::array< TooN::Vector< 2 >, 3 > &z, std::vector< TooN::SE3<>> &poses)
 The function for pose estimation from three 2D - 3D point correspondences. More...
 
void glVertex (const ImageRef &i)
 Specify the (x,y) co-ordinates of a vertex. More...
 
void glTexCoord (const ImageRef &i)
 Specify the (s,t) texture co-ordinates. More...
 
void glRasterPos (const ImageRef &i)
 Specify the (x,y) co-ordinates of the current raster position. More...
 
void glRect (const ImageRef &p, const ImageRef &q)
 Draws a rectangle by specifing two opposing vertices. More...
 
template<class P1 , class P2 >
void glLine (const P1 &x1, const P2 &x2)
 draws a line from x1 to x2 any type that is accepted by glVertex is possible
 
template<class C >
void glVertex (const C &list)
 sets a whole list of vertices stored in a std::vector. More...
 
void glColor (const CVD::Rgb< byte > &c)
 Set the new colour to the red, green, blue components given (where 0 represents zero intensity and 255 full intensity) More...
 
void glColor (const CVD::Rgb< float > &c)
 Set the new colour to the red, green and blue components given (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
void glColor3 (const CVD::Rgb8 &c)
 Set the new colour to the red, green and blue components given (where 0.0 represents zero intensity and 1.0 full intensity). More...
 
void glColor4 (const CVD::Rgb8 &c)
 Set the new colour to the red, green, blue and alpha components given (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
void glColor (const CVD::Rgba< unsigned char > &c)
 Set the new colour to the red, green, blue and alpha components given (where 0 represents zero intensity and 255 full intensity) More...
 
void glColor (const CVD::Rgba< float > &c)
 Set the new colour to the red, green, blue and alpha components given (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
template<class C >
void glDrawPixels (const BasicImage< C > &i)
 Draw an image to the frame buffer at the current raster position. More...
 
template<class C >
void glReadPixels (BasicImage< C > &i, ImageRef origin=ImageRef(0, 0))
 Read the current image from the colour buffer specified by glReadBuffer. More...
 
template<class C >
Image< C > glReadPixels (ImageRef size, ImageRef origin=ImageRef(0, 0))
 Read the current image from the colour buffer specified by glReadBuffer. More...
 
template<class C >
void glTexSubImage2D (const BasicImage< C > &i, GLint xoffset=0, GLint yoffset=0, GLenum target=GL_TEXTURE_2D, GLint level=0)
 Sets an image as a texture sub region. More...
 
template<class C >
void glTexImage2D (const BasicImage< C > &i, GLint border=0, GLenum target=GL_TEXTURE_2D, GLint level=0)
 Sets an image as a texture. More...
 
void glPrintErrors (void)
 Prints the current errors on the gl error stack.
 
void glSetFont (const std::string &fontname)
 sets the font to use for future font rendering commands. More...
 
const std::string & glGetFont ()
 returns the name of the currently active font
 
std::pair< double, double > glDrawText (const std::string &text, enum TEXT_STYLE style=NICE, double spacing=1.5, double kerning=0.1)
 renders a string in GL using the current settings. More...
 
std::pair< double, double > glGetExtends (const std::string &text, double spacing=1.5, double kerning=0.1)
 returns the size of the bounding box of a text to be rendered, similar to glDrawText but without any visual output
 
void glTranslate (const ImageRef &v)
 add a translation specified by an ImageRef More...
 
template<int N, typename P , typename A >
void glTranslate (const TooN::Vector< N, P, A > &v)
 add a translation specified from the first three coordinates of a vector More...
 
template<typename P , typename A >
void glTranslate (const TooN::Vector< 2, P, A > &v)
 add a translation specified from the first two coordinates of a 2-vector z is set to zero here More...
 
template<typename P , typename A >
void glTranslate (const TooN::Vector< 1, P, A > &v)
 add a translation specified from the first coordinate of a 1-vector Y and Z are zero here More...
 
template<int N, class P , class A >
void glMultMatrix (const TooN::Matrix< N, N, P, A > &m)
 multiply a TooN matrix onto the current matrix stack. More...
 
template<class P , class A >
void glMultMatrix (const TooN::Matrix< 3, 3, P, A > &m)
 multiply a TooN 3x3 matrix onto the current matrix stack. More...
 
template<class P , class A >
void glMultMatrix (const TooN::Matrix< 2, 2, P, A > &m)
 multiply a TooN 2x2 matrix onto the current matrix stack. More...
 
template<typename P >
void glMultMatrix (const TooN::SO3< P > &so3)
 multiplies a SO3 onto the current matrix stack More...
 
template<typename P >
void glMultMatrix (const TooN::SE3< P > &se3)
 multiplies a SE3 onto the current matrix stack. More...
 
template<typename P >
void glMultMatrix (const TooN::SO2< P > &so2)
 multiplies a SO2 onto the current matrix stack More...
 
template<typename P >
void glMultMatrix (const TooN::SE2< P > &se2)
 multiplies a SE2 onto the current matrix stack. More...
 
template<typename P >
void glOrtho (const CVD::ImageRef &size, const P nearPlane=-1.0, const P farPlane=1.0)
 Sets up an ortho projection suitable for drawing onto individual pixels of a gl window (or video image.) glVertex2f(0.0,0.0) will be the top left pixel and glVertex2f(xsize-1.0, ysize-1.0) will be the bottom right pixel. More...
 
template<typename P , typename A >
void glOrtho (const TooN::Vector< 6, P, A > &param)
 Sets up an ortho projection from a simple Vector<6> n.b. More...
 
template<typename P , typename A >
void glFrustum (const TooN::Vector< 4, P, A > &params, const float width, const float height, const float nearPlane=0.1, const float farPlane=100)
 sets a gl frustum from the linear camera parameters, image size and near and far plane. More...
 
template<class CAMERA >
void glFrustum (const CAMERA &camera, const float width, const float height, const float nearPlane=0.1, const float farPlane=100)
 sets a gl frustum taking the first 4 parameters from the camera model. More...
 
template<typename P , typename A >
void glFrustum (const TooN::Vector< 6, P, A > &param)
 Sets up an ortho projection from a simple Vector<6> n.b. More...
 
template<typename P , typename A >
void glColor (const TooN::Vector< 3, P, A > &v)
 Set the new colour to the red, green and blue components given in the Vector (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
template<typename P , typename A >
void glColor (const TooN::Vector< 4, P, A > &v)
 Set the new colour to the red, green, blue and alpha components given in the Vector (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
template<typename P , typename A >
void glClearColor (const TooN::Vector< 4, P, A > &v)
 Set the new clear colour to the red, green, blue and alpha components given in the Vector (where 0.0 represents zero intensity and 1.0 full intensity) More...
 
template<typename P , typename A >
void glClearColor (const TooN::Vector< 3, P, A > &v)
 Set the new clear colour to the red, green, blue components given in the Vector alpha is set to 1. More...
 
template<typename P , typename A >
void glColor (const TooN::Vector<-1, P, A > &v)
 glColor version for dynamic TooN::Vector, will test for 3 or 4 components More...
 
template<class C >
void glTexBasicImage2D (const BasicImage< C > &i, GLint xoffset=0, GLint yoffset=0, GLenum target=GL_TEXTURE_2D, GLint level=0)
 Sets an image as a texture sub region. More...
 
template<class It >
void haar1D (It from, It to)
 computes the 1D Haar transform of a signal in place. More...
 
template<class It >
void inv_haar1D (It from, It to)
 computes the inverse 1D Haar transform of a signal in place. More...
 
template<class It >
void haar1D (It from, int size)
 computes the 1D Haar transform of a signal in place. More...
 
template<class It >
void inv_haar1D (It from, int size)
 computes the inverse 1D Haar transform of a signal in place. More...
 
template<class It >
void haar2D (It from, const int width, const int height, int stride=-1)
 computes the 2D Haar transform of a signal in place. More...
 
template<class T >
void haar2D (BasicImage< T > &I)
 computes the 2D Haar transform of an image in place. More...
 
template<class Score , class Inserter , class C , class B >
void harrislike_corner_detect (const BasicImage< B > &i, C &c, unsigned int N, float blur, float sigmas, BasicImage< float > &xx, BasicImage< float > &xy, BasicImage< float > &yy)
 Generic Harris corner detection function. More...
 
template<class C >
void harris_corner_detect (const BasicImage< C > &i, std::vector< ImageRef > &c, unsigned int N, float blur=1.0, float sigmas=3.0)
 
template<class C >
void shitomasi_corner_detect (const BasicImage< C > &i, std::vector< ImageRef > &c, unsigned int N, float blur=1.0, float sigmas=3.0)
 
template<class I , class Head = Internal::AllImageTypes, class... ImageTypes>
void img_load (Image< I > &im, std::istream &i)
 
template<class I , class Head = Internal::AllImageTypes, class... ImageTypes>
void img_load (Image< I > &im, const std::string &s)
 
template<class... ImageTypes>
Internal::ImagePromise< Internal::ImageLoaderIstream< ImageTypes... > > img_load (std::istream &i)
 
template<class... ImageTypes>
Internal::ImagePromise< Internal::ImageLoaderString< ImageTypes... > > img_load (const std::string &i)
 
ImageType::ImageType string_to_image_type (const std::string &name)
 Deduce an image type from a filename suffix. More...
 
template<class PixelType >
void img_save (const BasicImage< PixelType > &im, std::ostream &o, ImageType::ImageType t, const std::map< std::string, Parameter<>> &p=std::map< std::string, Parameter<>>())
 Save an image to a stream. More...
 
template<class PixelType >
void img_save (const BasicImage< PixelType > &im, const std::string &name, ImageType::ImageType t, ImageType::ImageType d=ImageType::PNM, const std::map< std::string, Parameter<>> &p=std::map< std::string, Parameter<>>())
 
template<class PixelType >
void img_save (const BasicImage< PixelType > &im, const std::string &name, const std::map< std::string, Parameter<>> &p=std::map< std::string, Parameter<>>())
 
template<class PixelType >
void pnm_save (const BasicImage< PixelType > &im, std::ostream &o)
 Save an image to a stream as a PNM. More...
 
template<class PixelType >
void pnm_load (Image< PixelType > &im, std::istream &i)
 Load a PNM image from a stream. More...
 
void output_eps_footer (std::ostream &o)
 Outputs an EPS footer to an ostream. More...
 
void output_eps_header (std::ostream &o, int xs, int ys)
 Outputs an EPS header to an ostream. More...
 
void output_eps_header (std::ostream &o, const ImageRef &s)
 Outputs an EPS header to an ostream. More...
 
template<class PixelType >
void output_eps_header (std::ostream &o, const BasicImage< PixelType > &im)
 Outputs an EPS header to an ostream. More...
 
constexpr ImageRef operator* (const int scale, const ImageRef &ref)
 
template<class S , class D >
void integral_image (const BasicImage< S > &in, BasicImage< D > &out)
 Compute an integral image. More...
 
template<class C >
Internal::ImagePromise< Internal::IntegralImage< C > > integral_image (const BasicImage< C > &c)
 
template<class T , class S >
Rgb< T > operator+ (const Rgb< T > &a, const Rgb< S > &b)
 
template<class T , class S >
Rgb< T > & operator+= (Rgb< T > &a, const Rgb< S > &b)
 
template<class T , class S >
Rgb< T > operator- (const Rgb< T > &a, const Rgb< S > &b)
 
template<class T , class S >
Rgb< T > & operator-= (Rgb< T > &a, const Rgb< S > &b)
 
template<class T , class S >
Rgb< T > operator* (const Rgb< T > &a, const S &b)
 
template<class T , class S >
Rgb< T > operator* (const S &b, const Rgb< T > &a)
 
template<class T , class S >
Rgb< T > & operator*= (Rgb< T > &a, const S &b)
 
template<class T , class S >
Rgb< T > operator/ (const Rgb< T > &a, const S &b)
 
template<class T , class S >
Rgb< T > operator/ (const S &b, const Rgb< T > &a)
 
template<class T , class S >
Rgb< T > & operator/= (Rgb< T > &a, const S &b)
 
template<class T , class S >
Rgba< T > operator+ (const Rgba< T > &a, const Rgba< S > &b)
 
template<class T , class S >
Rgba< T > & operator+= (Rgba< T > &a, const Rgba< S > &b)
 
template<class T , class S >
Rgba< T > operator- (const Rgba< T > &a, const Rgba< S > &b)
 
template<class T , class S >
Rgba< T > & operator-= (Rgba< T > &a, const Rgba< S > &b)
 
template<class T , class S >
Rgba< T > operator* (const Rgba< T > &a, const S &b)
 
template<class T , class S >
Rgba< T > operator* (const S &b, const Rgba< T > &a)
 
template<class T , class S >
Rgba< T > & operator*= (Rgba< T > &a, const S &b)
 
template<class T , class S >
Rgba< T > operator/ (const Rgba< T > &a, const S &b)
 
template<class T , class S >
Rgba< T > operator/ (const S &b, const Rgba< T > &a)
 
template<class T , class S >
Rgba< T > & operator/= (Rgba< T > &a, const S &b)
 
template<class T , class S >
La< T > operator+ (const La< T > &a, const La< S > &b)
 
template<class T , class S >
La< T > & operator+= (La< T > &a, const La< S > &b)
 
template<class T , class S >
La< T > operator- (const La< T > &a, const La< S > &b)
 
template<class T , class S >
La< T > & operator-= (La< T > &a, const La< S > &b)
 
template<class T , class S >
La< T > operator* (const La< T > &a, const S &b)
 
template<class T , class S >
La< T > operator* (const S &b, const La< T > &a)
 
template<class T , class S >
La< T > & operator*= (La< T > &a, const S &b)
 
template<class T , class S >
La< T > operator/ (const La< T > &a, const S &b)
 
template<class T , class S >
La< T > operator/ (const S &b, const La< T > &a)
 
template<class T , class S >
La< T > & operator/= (La< T > &a, const S &b)
 
double interpolate_extremum (double d1, double d2, double d3)
 Interploate a 1D local extremem by fitting a quadratic tho the three data points and interpolating. More...
 
std::pair< TooN::Vector< 2 >, double > interpolate_extremum_value (double I__1__1, double I__1_0, double I__1_1, double I_0__1, double I_0_0, double I_0_1, double I_1__1, double I_1_0, double I_1_1)
 Interpolate a 2D local maximum, by fitting a quadratic. More...
 
template<class I >
std::pair< TooN::Vector< 2 >, double > interpolate_extremum_value (const BasicImage< I > &i, ImageRef p)
 Interpolate a 2D local maximum, by fitting a quadratic. More...
 
template<class Accumulator , class T >
void morphology (const BasicImage< T > &in, const std::vector< ImageRef > &selem, const Accumulator &a_, BasicImage< T > &out)
 Perform a morphological operation on the image. More...
 
template<class C , class D >
Internal::ImagePromise< Internal::PerformMorphology< C, D > > morphology (const BasicImage< C > &c, const std::vector< ImageRef > &selem, const D &a)
 
void morphology (const BasicImage< byte > &in, const std::vector< ImageRef > &selem, const Morphology::Median< byte > &m, BasicImage< byte > &out)
 
void nonmax_suppression_strict (const std::vector< ImageRef > &corners, const std::vector< int > &scores, std::vector< ImageRef > &nmax_corners)
 Perform nonmaximal suppression on a set of features, in a 3 by 3 window. More...
 
void nonmax_suppression (const std::vector< ImageRef > &corners, const std::vector< int > &scores, std::vector< ImageRef > &nmax_corners)
 Perform nonmaximal suppression on a set of features, in a 3 by 3 window. More...
 
void nonmax_suppression_with_scores (const std::vector< ImageRef > &corners, const std::vector< int > &socres, std::vector< std::pair< ImageRef, int >> &max_corners)
 Perform nonmaximal suppression on a set of features, in a 3 by 3 window. More...
 
template<class T >
cv::Mat toMat (const CVD::BasicImage< T > &img)
 
template<class T >
void equalizeHist (const CVD::BasicImage< T > &in, CVD::BasicImage< T > &out)
 
template<class C >
Image< TooN::Matrix< 2 > > dense_tensor_vote_gradients (const BasicImage< C > &image, double sigma, double ratio, double cutoff=0.001, unsigned int num_divs=4096)
 This function performs tensor voting on the gradients of an image. More...
 
double get_time_of_day ()
 Same as the system call gettimeofday, but returns seconds since the epoch as a double. More...
 
long long get_time_of_day_ns ()
 Same as the system call gettimeofday, but returns nanoseconds seconds since the epoch.
 
template<class S , class T >
void copy (const BasicImage< S > &in, BasicImage< T > &out, ImageRef size=ImageRef(-1, -1), ImageRef begin=ImageRef(), ImageRef dst=ImageRef())
 Generic image copy function for copying sub rectangles of images into other images. More...
 
template<class T >
void zeroPixel (T &pixel)
 Set a pixel to the default value (typically 0) For multi-component pixels, this zeros all components (sets them to defaults)
 
template<class T >
void zeroPixels (T *pixels, int count)
 Set many pixels to the default value (typically 0) For multi-component pixels, this zeros all components (sets them to defaults)
 
template<class T >
void zeroBorders (BasicImage< T > &I)
 Set the one-pixel border (top, bottom, sides) of an image to zero values.
 
template<class T >
void fillBorders (BasicImage< T > &im, const T pix, int w=1)
 Fill image borders. More...
 
template<class A , class B >
void differences (const A *a, const A *b, B *diff, size_t count)
 Compute pointwise differences (a_i - b_i) and store in diff_i This is accelerated using SIMD for some platforms and data types (alignment is checked at runtime) Do not specify template parameters explicitly so that overloading can choose the right implementation.
 
template<class A , class B , class C >
void add_multiple_of_sum (const A *a, const A *b, const C &c, B *out, size_t count)
 Compute pointwise (a_i + b_i) * c and add to out_i This is accelerated using SIMD for some platforms and data types (alignment is checked at runtime) Do not specify template parameters explicitly so that overloading can choose the right implementation.
 
template<class A , class B , class C >
void assign_multiple (const A *a, const B &c, C *out, size_t count)
 Compute pointwise a_i * c and store in out_i This is accelerated using SIMD for some platforms and data types (alignment is checked at runtime) Do not specify template parameters explicitly so that overloading can choose the right implementation.
 
template<class T >
double inner_product (const T *a, const T *b, size_t count)
 Compute sum(a_i*b_i) This is accelerated using SIMD for some platforms and data types (alignment is checked at runtime) Do not specify template parameters explicitly so that overloading can choose the right implementation.
 
template<class T1 , class T2 >
void square (const T1 *in, T2 *out, size_t count)
 
template<class T1 , class T2 >
void subtract_square (const T1 *in, T2 *out, size_t count)
 
template<class T >
double sum_squared_differences (const T *a, const T *b, size_t count)
 Compute sum of (a_i - b_i)^2 (the SSD) This is accelerated using SIMD for some platforms and data types (alignment is checked at runtime) Do not specify template parameters explicitly so that overloading can choose the right implementation.
 
template<int bytes>
bool is_aligned (const void *ptr)
 Check if the pointer is aligned to the specified byte granularity.
 
template<>
bool is_aligned< 8 > (const void *ptr)
 
template<>
bool is_aligned< 16 > (const void *ptr)
 
template<int A, class T >
size_t steps_to_align (const T *ptr)
 Compute the number of pointer increments necessary to yield alignment of A bytes.
 
void differences (const byte *a, const byte *b, short *diff, unsigned int size)
 
void differences (const short *a, const short *b, short *diff, unsigned int size)
 
void differences (const float *a, const float *b, float *diff, size_t size)
 
void add_multiple_of_sum (const float *a, const float *b, const float &c, float *out, size_t count)
 
void assign_multiple (const float *a, const float &c, float *out, size_t count)
 
double inner_product (const float *a, const float *b, size_t count)
 
double sum_squared_differences (const float *a, const float *b, size_t count)
 
void square (const float *in, float *out, size_t count)
 
void subtract_square (const float *in, float *out, size_t count)
 
void differences (const int32_t *a, const int32_t *b, int32_t *diff, size_t size)
 
void differences (const double *a, const double *b, double *diff, size_t size)
 
void add_multiple_of_sum (const double *a, const double *b, const double &c, double *out, size_t count)
 
void assign_multiple (const double *a, const double &c, double *out, size_t count)
 
double inner_product (const double *a, const double *b, size_t count)
 
double sum_squared_differences (const double *a, const double *b, size_t count)
 
long long sum_squared_differences (const byte *a, const byte *b, size_t count)
 
TooN::Vector< 2 > vec (const ImageRef &ir)
 Convert an image co-ordinate into a Vector. More...
 
ImageRef ir (const TooN::Vector< 2 > &v)
 Convert a Vector into an image co-ordinate. More...
 
ImageRef ir_floor (const TooN::Vector< 2 > &v)
 Convert a Vector into an image co-ordinate. More...
 
ImageRef ir_rounded (const TooN::Vector< 2 > &v)
 Convert a Vector into an image co-ordinate. More...
 
ImageRef ir_rescale_rounded (const ImageRef &v, double rescaling_factor)
 Rescale an ImageRef by a scaling factor. More...
 
std::ostream & operator<< (std::ostream &out, const VideoSource &vs)
 
void parse (std::istream &in, VideoSource &vs)
 
template<class T >
VideoBuffer< T > * open_video_source (const std::string &src)
 opens a video device described by a video source url. More...
 
void get_jpegstream_options (const VideoSource &vs, int &fps)
 
void get_deinterlace_options (const VideoSource &vs, DeinterlaceBufferFields::Fields &fields, bool &)
 
void get_skip_options (const VideoSource &vs, bool &do_seek, double &seek, int &drop)
 
void get_colourspace_options (const VideoSource &vs, std::string &from)
 
template<class Out , class In >
VideoBuffer< Out > * makeConvertBufferBit (const std::string &r)
 
template<class T >
VideoBuffer< T > * makeColourspaceBuffer (const std::string &c, const std::string &r)
 
void get_files_options (const VideoSource &vs, int &fps, VideoBufferFlags::OnEndOfBuffer &eob)
 
template<class T >
VideoBuffer< T > * makeV4LBuffer (const std::string &, const ImageRef &, int, bool, bool)
 
template<>
VideoBuffer< byte > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< bayer_grbg > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< yuv422 > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< vuy422 > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< yuv420p > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< Rgb< byte > > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
template<>
VideoBuffer< Rgb8 > * makeV4LBuffer (const std::string &dev, const ImageRef &size, int input, bool interlaced, bool verbose)
 
void get_v4l2_options (const VideoSource &vs, ImageRef &size, int &input, bool &interlaced, bool &verbose)
 
template<class T >
VideoBuffer< T > * makeUVCBuffer (const std::string &, const ImageRef &, double, bool, bool)
 
template<>
VideoBuffer< yuv422 > * makeUVCBuffer (const std::string &dev, const ImageRef &size, double fps, bool mjpeg, bool verbose)
 
template<>
VideoBuffer< Rgb< byte > > * makeUVCBuffer (const std::string &dev, const ImageRef &size, double fps, bool mjpeg, bool verbose)
 
void get_uvc_options (const VideoSource &vs, ImageRef &size, double &fps, bool &mjpeg, bool &verbose)
 
template<class T >
VideoBuffer< T > * makeVideoFileBuffer (const std::string &, VideoBufferFlags::OnEndOfBuffer, bool, const std::string &, const std::map< std::string, std::string > &)
 
template<>
VideoBuffer< byte > * makeVideoFileBuffer (const std::string &file, VideoBufferFlags::OnEndOfBuffer eob, bool verbose, const std::string &formatname, const std::map< std::string, std::string > &)
 
template<>
VideoBuffer< Rgb< byte > > * makeVideoFileBuffer (const std::string &file, VideoBufferFlags::OnEndOfBuffer eob, bool verbose, const std::string &formatname, const std::map< std::string, std::string > &)
 
void get_file_options (const VideoSource &vs, VideoBufferFlags::OnEndOfBuffer &eob, bool &verbose, std::string &formatname, std::map< std::string, std::string > &)
 
template<class T >
VideoBuffer< T > * makeDVBuffer2 (int, ImageRef, float, ImageRef, bool, bool, int)
 
template<>
VideoBuffer< byte > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< unsigned short > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< yuv422 > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< Rgb< byte > > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_bggr > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_gbrg > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_grbg > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_rggb > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_bggr16be > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_gbrg16be > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_grbg16be > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
template<>
VideoBuffer< bayer_rggb16be > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool verbose, bool bus_reset, int format7_mode)
 
void get_dc1394_options (const VideoSource &vs, ImageRef &size, float &fps, ImageRef &offset, bool &verbose, bool &bus_reset, int &format7_mode)
 
template<class T >
VideoBuffer< T > * open_video_source (const VideoSource &vs)
 
template<class T >
VideoBuffer< T > * open_video_source (std::istream &in)
 opens a video device described by a video source url given from an input stream. More...
 
template<class C >
Image< C > linearInterpolationDownsample (const BasicImage< C > &in, float scale)
 Downsample an image using linear interpolation. More...
 
template<class C >
Image< C > fastApproximateDownSample (const BasicImage< C > &in, double scale)
 Downsample an image using some fast hacks. More...
 
template<class C >
void twoThirdsSample (const BasicImage< C > &in, BasicImage< C > &out)
 Subsamples an image to 2/3 of its size by averaging 3x3 blocks into 2x2 blocks. More...
 
void twoThirdsSample (const BasicImage< byte > &in, BasicImage< byte > &out)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<class C >
Image< C > twoThirdsSample (const BasicImage< C > &from)
 Subsamples an image by averaging 3x3 blocks in to 2x2 ones. More...
 
template<class T >
void halfSample (const BasicImage< T > &in, BasicImage< T > &out)
 subsamples an image to half its size by averaging 2x2 pixel blocks More...
 
void halfSample (const BasicImage< byte > &in, BasicImage< byte > &out)
 
template<class T >
Image< T > halfSample (const BasicImage< T > &in)
 subsamples an image to half its size by averaging 2x2 pixel blocks More...
 
template<class T >
Image< T > halfSample (Image< T > in, unsigned int octaves)
 subsamples an image repeatedly by half its size by averaging 2x2 pixel blocks. More...
 
template<class T >
void threshold (BasicImage< T > &im, const T &minimum, const T &hi)
 thresholds an image by setting all pixel values below a minimum to 0 and all values above to a given maximum More...
 
template<class T >
void stats (const BasicImage< T > &im, T &mean, T &stddev)
 computes mean and stddev of intensities in an image. More...
 
template<class S , class T >
void gradient (const BasicImage< S > &im, BasicImage< T > &out)
 computes the gradient image from an image. More...
 
void gradient (const BasicImage< byte > &im, BasicImage< short[2]> &out)
 
template<class T , class S , typename Precision >
void sample (const BasicImage< S > &im, Precision x, Precision y, T &result)
 
template<class T , class S , typename Precision >
sample (const BasicImage< S > &im, Precision x, Precision y)
 
void sample (const BasicImage< float > &im, double x, double y, float &result)
 
template<class T >
void transpose (const SubImage< T > &in, SubImage< T > &&out)
 
template<class T >
Image< T > transpose (const SubImage< T > &in)
 
template<class T >
void flipVertical (SubImage< T > &&in)
 flips an image vertically in place.
 
template<class T >
void flipVertical (SubImage< T > &in)
 
template<class T >
void flipHorizontal (SubImage< T > &&in)
 flips an image horizontally in place.
 
template<class T >
void flipHorizontal (SubImage< T > &in)
 
template<class T >
void median_filter_3x3 (const BasicImage< T > &I, BasicImage< T > out)
 
void median_filter_3x3 (const BasicImage< byte > &I, BasicImage< byte > out)
 
void connected_components (const vector< ImageRef > &v, vector< vector< ImageRef >> &r)
 
void convolveGaussian5_1 (Image< byte > &I)
 
double compute_van_vliet_variance (const double d[])
 
double compute_van_vliet_variance (const double d[], double J[3])
 
void compute_scaling_jacobian (const double d[], double J[])
 
void scale_d (double d[], double p)
 
void compute_van_vliet_scaled_d (double sigma, double d[])
 
void build_van_vliet_b (const double d[], double b[])
 
void forward_to_backward (const double M[][3], const double i_plus, const double inv_alpha, double &y1, double &y2, double &y3)
 
template<class T >
clamp01 (T x)
 
vector< ImageRefgetSolidEllipse (float r1, float r2, float theta)
 
void fast_corner_detect_plain_10 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_10 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_10 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_11 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_11 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_11 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_12 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_12 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_12 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_7 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_7 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_7 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_8 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_8 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_8 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_9 (const BasicImage< byte > &i, vector< ImageRef > &corners, int b)
 
int fast_corner_score_9 (const byte *cache_0, const int offset[], int b)
 
void fast_corner_score_9 (const BasicImage< byte > &i, const vector< ImageRef > &corners, int b, vector< int > &scores)
 
void fast_corner_detect_plain_7 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
void fast_corner_detect_plain_8 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
void fast_corner_detect_plain_9 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
void fast_corner_detect_plain_10 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
void fast_corner_detect_plain_11 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
void fast_corner_detect_plain_12 (const BasicImage< byte > &i, std::vector< ImageRef > &corners, int b)
 
int old_style_corner_score (const BasicImage< byte > &im, ImageRef c, const int *pointer_dir, int barrier)
 
void compute_fast_score_old (const BasicImage< byte > &im, const vector< ImageRef > &corners, int barrier, vector< int > &scores)
 
void fast_nonmax (const BasicImage< byte > &im, const vector< ImageRef > &corners, int barrier, vector< ImageRef > &max_corners)
 
void fast_nonmax_with_scores (const BasicImage< byte > &im, const vector< ImageRef > &corners, int barrier, vector< pair< ImageRef, int >> &max_corners)
 
template<bool Aligned>
__m128i load_si128 (const void *addr)
 
template<>
__m128i load_si128< true > (const void *addr)
 
vector< string > globlist (const string &gl)
 
void output_eps_header (ostream &o, int xs, int ys)
 
void output_eps_header (ostream &o, const ImageRef &s)
 
void output_eps_footer (ostream &o)
 
int get_closest_framerate (double fps, double &ret)
 
void tom_dc1394_dma_release_camera (raw1394handle_t, const unsigned char *ring_buffer, int buffer_size, int dma_fd)
 
string unfourcc (unsigned long c)
 
unsigned int fourcc (const fourcc_string &s)
 
void byte_to_short_differences (const __m64 *a, const __m64 *b, __m64 *diff, size_t count)
 
void short_differences (const __m64 *a, const __m64 *b, __m64 *diff, size_t count)
 
void differences (const byte *a, const byte *b, short *diff, size_t count)
 
void differences (const short *a, const short *b, short *diff, size_t count)
 
void differences (const int32_t *a, const int32_t *b, int32_t *diff, unsigned int size)
 
void differences (const double *a, const double *b, double *diff, unsigned int size)
 
void add_multiple_of_sum (const double *a, const double *b, const double &c, double *out, unsigned int count)
 
void assign_multiple (const double *a, const double &c, double *out, unsigned int count)
 
double inner_product (const double *a, const double *b, unsigned int count)
 
void differences (const float *a, const float *b, float *diff, unsigned int size)
 
void assign_multiple (const float *a, const float &c, float *out, unsigned int count)
 
double inner_product (const float *a, const float *b, unsigned int count)
 
template<class Score , class ReturnType , class Collector , class Test >
void nonmax_suppression_t (const vector< ImageRef > &corners, const vector< Score > &scores, vector< ReturnType > &nonmax_corners)
 
void nonmax_suppression_strict (const vector< ImageRef > &corners, const vector< int > &scores, vector< ImageRef > &nonmax_corners)
 
void nonmax_suppression (const vector< ImageRef > &corners, const vector< int > &scores, vector< ImageRef > &nonmax_corners)
 
void nonmax_suppression_with_scores (const vector< ImageRef > &corners, const vector< int > &scores, vector< pair< ImageRef, int >> &nonmax_corners)
 
int find_quartic_real_roots (double B, double C, double D, double E, double r[])
 A function to find the real roots of a quartic polynomial x^4 + Bx^3 + Cx^2 + Dx + E. More...
 
double eval_quartic (double B, double C, double D, double E, double x)
 A function to evaluate x^4 + Bx^3 + Cx^2 + Dx + E.
 
double newton_quartic (double B, double C, double D, double E, double x)
 A function that performs one iteration of Newton's method on the quartic x^4 + Bx^3 + Cx^2 + Dx + E.
 
void convolveMiddle5 (const float *in, float factor, const float kernel[], int count, float *out)
 
void convolveMiddle (const float *in, float factor, const vector< float > &kernel, int count, float *out)
 
template<bool Aligned>
__m128 load_ps (const float *f)
 
template<>
__m128 load_ps< true > (const float *f)
 
template<bool Aligned>
void store_ps (float *f, __m128 d)
 
template<>
void store_ps< true > (float *f, __m128 d)
 
template<bool Aligned>
void convolveVertical5 (const vector< float *> &row, float factor, const float kernel[], int count, float *out)
 
template<bool Aligned>
void convolveVertical (const vector< float *> &row, float factor, const vector< float > &kernel, int count, float *out)
 
void convolveGaussian_simd (const BasicImage< float > &I, BasicImage< float > &out, double sigma, double sigmas)
 
void transpose (__m128 &x1, __m128 &x2, __m128 &x3, __m128 &x4)
 
void forward_to_backward (const __m128 M[], const __m128 i_plus, const __m128 inv_alpha, __m128 &y1, __m128 &y2, __m128 &y3)
 
void van_vliet_blur_simd (const double b[], const BasicImage< float > in, BasicImage< float > out)
 
template<bool Aligned>
__m128 load_ps (const void *addr)
 
template<>
__m128 load_ps< true > (const void *addr)
 
template<bool Aligned>
void store_ps (__m128 m, void *addr)
 
template<>
void store_ps< true > (__m128 m, void *addr)
 
template<bool Aligned_b>
void float_differences (const __m128 *a, const __m128 *b, __m128 *diff, size_t count)
 
template<bool Aligned_b>
void float_add_multiple_of_sum (const __m128 *a, const __m128 *b, const float &c, __m128 *out, size_t count)
 
template<bool Aligned_out>
void float_assign_multiple (const __m128 *a, const float &c, __m128 *out, size_t count)
 
template<bool Aligned_b>
double float_inner_product (const __m128 *a, const __m128 *b, size_t count)
 
template<bool Aligned_b>
double float_sum_squared_differences (const __m128 *a, const __m128 *b, size_t count)
 
template<bool Aligned_out>
void float_square (const __m128 *in, __m128 *out, size_t count)
 
template<bool Aligned_out>
void float_subtract_square (const __m128 *in, __m128 *out, size_t count)
 
template<class C >
bool is_corner_10 (const byte *p, const int w, const int barrier)
 
template<bool Aligned>
void faster_corner_detect_10 (const BasicImage< byte > &I, std::vector< ImageRef > &corners, const int barrier)
 
template<class C >
bool is_corner_12 (const byte *p, const int w, const int barrier)
 
template<int CHUNKS, class C >
void process_16 (unsigned int three, const byte *p, const int w, const int barrier, C &corners)
 
template<bool Aligned>
void faster_corner_detect_12 (const BasicImage< byte > &I, std::vector< ImageRef > &corners, int barrier)
 
template<class C >
bool is_corner_9 (const byte *p, const int w, const int barrier)
 
template<bool Aligned>
void faster_corner_detect_9 (const BasicImage< byte > &I, std::vector< ImageRef > &corners, const int barrier)
 
void gradient (const byte *in, short(*out)[2], int w, int h)
 
template<bool Aligned>
__m128d load_pd (const void *addr)
 
template<>
__m128d load_pd< true > (const void *addr)
 
template<bool Aligned>
void store_pd (__m128d m, void *addr)
 
template<>
void store_pd< true > (__m128d m, void *addr)
 
template<bool Aligned_b>
void int_differences (const __m128i *a, const __m128i *b, __m128i *diff, size_t count)
 
template<bool Aligned_b>
void double_differences (const __m128d *a, const __m128d *b, __m128d *diff, size_t count)
 
template<bool Aligned_b>
void double_add_multiple_of_sum (const __m128d *a, const __m128d *b, const double &c, __m128d *out, size_t count)
 
template<bool Aligned_out>
void double_assign_multiple (const __m128d *a, const double &c, __m128d *out, size_t count)
 
template<bool Aligned_b>
double double_inner_product (const __m128d *a, const __m128d *b, size_t count)
 
template<bool Aligned_b>
long long byte_sum_squared_differences (const __m128i *a, const __m128i *b, size_t count)
 
template<bool Aligned_b>
double double_sum_squared_differences (const __m128d *a, const __m128d *b, size_t count)
 
int three_point_pose (const array< Vector< 3 >, 3 > &xi, const array< Vector< 2 >, 3 > &zi, vector< SE3<>> &poses)
 
int three_point_pose (const array< Vector< 3 >, 3 > &xi, const array< Vector< 3 >, 3 > &rays, vector< SE3<>> &poses)
 
template<class F , class T1 , class T2 , int A, int M>
void maybe_aligned_differences (const T1 *a, const T1 *b, T2 *c, size_t count)
 
template<class F , class T1 , class T2 , int A, int M>
void maybe_aligned_add_mul_add (const T1 *a, const T1 *b, const T1 &c, T2 *out, size_t count)
 
template<class F , class T1 , class T2 , int A, int M>
void maybe_aligned_assign_mul (const T1 *a, const T1 &c, T2 *out, size_t count)
 
template<class F , class R , class T1 , int A, int M>
maybe_aligned_inner_product (const T1 *a, const T1 *b, size_t count)
 
template<class F , class R , class T1 , int A, int M>
maybe_aligned_ssd (const T1 *a, const T1 *b, size_t count)
 
template<class F , class T1 , class T2 , int A, int M>
void maybe_aligned_square (const T1 *in, T2 *out, size_t count)
 
template<class F , class T1 , class T2 , int A, int M>
void maybe_aligned_subtract_square (const T1 *in, T2 *out, size_t count)
 
void tolower (std::string &s)
 
void tolower (char *s)
 
bool parseBoolFlag (std::string s)
 
ImageRef parseImageRef (string s, bool is_size)
 
std::string escape (char c)
 
std::string unescape (const std::string &s)
 
void match (std::istream &in, char c)
 
void skip_ws (std::istream &in)
 
std::string read_quoted_literal (std::istream &in)
 
std::string read_word (std::istream &in)
 
std::string read_path (std::istream &in)
 
void get_colourspace_options (const VideoSource &vs, string &colourspace)
 
void get_v4l1_options (const VideoSource &vs, ImageRef &size)
 
void get_file_options (const VideoSource &vs, VideoBufferFlags::OnEndOfBuffer &eob, bool &verbose, string &fmtname, map< string, string > &opts)
 
template<>
VideoBuffer< yuv411 > * makeDVBuffer2 (int cam, ImageRef size, float fps, ImageRef offset, bool v, bool r, int m)
 
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM)
 
void markGLWindowAsClosed (GLWindow::State *state)
 
void closeGLWindow (GLWindow::State *state)
 
int convertButtonState (const WPARAM state)
 
ImageRef convertPosition (LPARAM param)
 

Variables

const ImageRef fast_pixel_ring [16]
 The 16 offsets from the centre pixel used in FAST feature detection. More...
 
cvd_timer timer
 
const int quadlets_per_packet_format_0 [42]
 
const int quadlets_per_packet_format_1 [48]
 
const int quadlets_per_packet_format_2 [48]
 

Detailed Description

All classes and functions are within the CVD namespace.

Function Documentation

◆ fillBorders()

template<class T >
void CVD::fillBorders ( BasicImage< T > &  im,
const T  pix,
int  w = 1 
)

Fill image borders.

Parameters
imImage fo fill borders in
pixFill value
wborder width

◆ find_quartic_real_roots()

int CVD::find_quartic_real_roots ( double  B,
double  C,
double  D,
double  E,
double  r[] 
)

A function to find the real roots of a quartic polynomial x^4 + Bx^3 + Cx^2 + Dx + E.

It efficiently implements the quartic formula as given by Cardano, Harriot, et al. The precision of the resulting roots depends on the nature of the coefficients. Sufficient precision can be ensured by refining the resulting roots using Newton's method.

Parameters
[in]Bthe coefficient of the cubic term
[in]Cthe coefficient of the quadratic term
[in]Dthe coefficient of the linear term
[in]Ethe coefficient of the constant term
[out]ran array in which 0, 2, or 4 real roots will be stored
Returns
the number of real roots

◆ get_time_of_day()

double CVD::get_time_of_day ( )

Same as the system call gettimeofday, but returns seconds since the epoch as a double.

◆ glFrustum()

template<typename P , typename A >
void CVD::glFrustum ( const TooN::Vector< 6, P, A > &  param)
inline

Sets up an ortho projection from a simple Vector<6> n.b.

You first need to set up the matrix environment yourself, e.g. glMatrixMode(GL_PROJECTION); glLoadIdentity();

Parameters
param6-vector containing the parameters of the projection

◆ globlist()

std::vector< std::string > CVD::globlist ( const std::string &  gl)

Make a list of strings from a UNIX-style pattern pathname expansion.

Tilde expansion is done, and * ? [] and {} can all be used as normal. The filenames are returned in alphabetical (and numerical) order.

Parameters
glThe pattern from which to generate the strings

◆ glOrtho() [1/2]

template<typename P >
void CVD::glOrtho ( const CVD::ImageRef size,
const P  nearPlane = -1.0,
const P  farPlane = 1.0 
)
inline

Sets up an ortho projection suitable for drawing onto individual pixels of a gl window (or video image.) glVertex2f(0.0,0.0) will be the top left pixel and glVertex2f(xsize-1.0, ysize-1.0) will be the bottom right pixel.

Depth is set from -1 to 1. n.b. You first need to set up the matrix environment yourself, e.g. glMatrixMode(GL_PROJECTION); glLoadIdentity();

Parameters
sizeImageRef containing the size of the GL window.

◆ glOrtho() [2/2]

template<typename P , typename A >
void CVD::glOrtho ( const TooN::Vector< 6, P, A > &  param)
inline

Sets up an ortho projection from a simple Vector<6> n.b.

You first need to set up the matrix environment yourself, e.g. glMatrixMode(GL_PROJECTION); glLoadIdentity();

Parameters
param6-vector containing the parameters of the projection

◆ string_to_image_type()

ImageType::ImageType CVD::string_to_image_type ( const std::string &  name)

Deduce an image type from a filename suffix.

Parameters
nameThe name of the image file

Variable Documentation

◆ quadlets_per_packet_format_0

const int CVD::quadlets_per_packet_format_0[42]
Initial value:
= {
-1, -1, 15, 30, 60, -1,
-1, 20, 40, 80, 160, -1,
-1, 60, 120, 240, 480, -1,
-1, 80, 160, 320, 640, -1,
-1, 120, 240, 480, 960, -1,
-1, 40, 80, 160, 320, 640,
-1, 80, 160, 320, 640, -1
}

◆ quadlets_per_packet_format_1

const int CVD::quadlets_per_packet_format_1[48]
Initial value:
= {
-1, 125, 250, 500, 1000, -1,
-1, -1, 375, 750, -1, -1,
-1, -1, 125, 250, 500, 1000,
96, 192, 384, 768, -1, -1,
144, 288, 576, -1, -1, -1,
48, 96, 192, 384, 768, -1,
-1, 125, 250, 500, 1000, -1,
96, 192, 384, 768, -1, -1
}

◆ quadlets_per_packet_format_2

const int CVD::quadlets_per_packet_format_2[48]
Initial value:
= {
160, 320, 640, -1, -1, -1,
240, 480, 960, -1, -1, -1,
80, 160, 320, 640, -1, -1,
250, 500, 1000, -1, -1, -1,
375, 750, -1, -1, -1, -1,
125, 250, 500, 1000, -1, -1,
160, 320, 640, -1, -1, -1,
250, 500, 1000, -1, -1, -1
}