CVB++ 14.0
Cvb Namespace Reference

Root namespace for the Image Manager interface. More...

Namespaces

namespace  Async
 Convenience classes for asynchronous image acquisition.
 
namespace  Barcode
 Namespace for the Barcode package.
 
namespace  Dnc
 Namespace for the DNC package.
 
namespace  Driver
 Namespace for driver or device related operations.
 
namespace  ErrorCodes
 Classic API error codes.
 
namespace  Foundation
 Namespace for the Foundation package.
 
namespace  GenApi
 Namespace for GenApi based device configuration.
 
namespace  GevServer
 Describes a GenICam Pixel Format Naming Convention (PFNC) compatible image memory buffer with possibly additional data.
 
namespace  Match3D
 Namespace for matching 3D components.
 
namespace  Minos
 Namespace for the Minos package.
 
namespace  Movie2
 Record movies with classes from this tool.
 
namespace  OpcUa
 Root namespace for the OpcUA tool.
 
namespace  Pfnc
 GenICam Pixel Format Naming Convention (PFNC) related components.
 
namespace  Polimago
 Namespace for the Polimago package.
 
namespace  SampleDatabase
 Namespace for the SampleDatabase package.
 
namespace  ShapeFinder2
 Namespace for the ShapeFinder2 package.
 
namespace  Shims
 Namespace to for standard types that are not available in C++14.
 
namespace  Spectral
 Namespace for the Spectral package.
 
namespace  UI
 Namespace for user interface components.
 
namespace  Utilities
 Namespace for helpers and utilities, which are not directly related to image processing.
 
namespace  WebStreaming
 Namespace for streaming images via web sockets.
 

Classes

class  AffineMatrix2D
 Compacted affine matrix describing the Common Vision Blox coordinate system. More...
 
class  AffineMatrix3D
 Affine transformation matrix for 3D. More...
 
class  Angle
 Object for convenient and type - safe handling of angles. More...
 
class  Area2D
 Structure that represents an area of interest in the image. More...
 
class  ArrayAccess
 Access trait for contiguous linear CVB image planes. More...
 
class  AtCalibrator3D
 Calibration object to apply 3D calibration of sensor provided by Automation Technology (AT) to point clouds. More...
 
class  Block
 Non-owning view on a 2d-plane of data. More...
 
class  BlockBase
 Base class for all typed Cvb::Block types. More...
 
class  Buffer
 Buffer class implementing a buffer. More...
 
class  BufferBase
 Base class of all buffers. More...
 
class  Calibrator3D
 Base calibration class to apply 3D calibration to point clouds. More...
 
class  CancellationToken
 A token to enable cancellation on wait operations. More...
 
class  CancellationTokenSource
 Provides tokens and signals tokens cancellation. More...
 
class  Circle
 Class representing a circle. More...
 
class  ComponentsPointers3D
 Point components of the point cloud. More...
 
class  Composite
 Component class is a container for CVB objects. More...
 
class  ConstRefValue
 This class holds references to K values of type T. More...
 
class  Cuboid
 3D rectangle in the X, Y and Z domain. More...
 
class  CvbException
 Special runtime exception to carry a native error code. More...
 
class  DataType
 Data type description for an image plane. More...
 
class  DenseComponentsPointers3D
 Point components of a dense point cloud. More...
 
class  DensePointCloud
 A dense Cartesian 3D point cloud object. More...
 
class  Device
 Generic CVB physical device. More...
 
class  DeviceFactory
 Factory object for creating device objects. More...
 
class  Ellipse
 Class representing an ellipse. More...
 
class  EventCookie
 Cookie used to unregister event handlers. More...
 
class  Factors3D
 Factor components to be applied in the 3D domain. More...
 
class  FactorsCalibrator3D
 Calibration object to apply factors component wise. More...
 
class  HandleOnly
 HandleOnly class is as it says a handle only. More...
 
class  IArray
 Array interface. More...
 
class  Image
 The Common Vision Blox image. More...
 
class  ImagePlane
 Image plane information container. More...
 
class  LaserPlaneCalibrator3D
 Calibration object to appling parameters calibrating laser plane. More...
 
class  LaserPlaneHomographyCalibrator3D
 Calibration object from CVB Metric to apply a x-z homography for laser triangulation cameras. More...
 
class  LaserPlaneZigZagCalibrator3D
 Calibration object to apply zig zag algorithm to the range map of a laser triangulation cameras. More...
 
class  Line2D
 Object representing an infinite line in 2 dimensional space. More...
 
class  LinearAccessData
 Linear access properties. More...
 
class  LinearValue
 This class is memory compatible to K values of type T. More...
 
class  LocalMaximum
 Result type returned by the FindLocalMaxima function. More...
 
class  Matrix2D
 Double precision 2x2 matrix class. More...
 
class  Matrix3D
 Double precision 3x3 matrix class. More...
 
class  Matrix3DH
 Double precision row-major 4x4 matrix. More...
 
class  MatrixCalibrator3D
 Calibration object to apply 4x4 matrix to each point. More...
 
class  Mesh
 3D mesh object consisting of polygons. More...
 
class  NetworkConnection
 Basic network connection operations. More...
 
class  PanoramicMappedImage
 Mapped image of two merged source images. More...
 
class  PFNCBuffer
 PFNC buffer class implementing a pfnc buffer. More...
 
class  PinholeCameraCalibrator3D
 Calibration object to apply the pinhole camera model to the input range map. More...
 
class  Plane
 Plane information container. More...
 
class  Plane3D
 A plane in 3D space in Hessian normal form. More...
 
class  PlaneEnumerator
 Lazy enumeration of planes.
More...
 
class  PlaneTraits
 
class  Point2D
 Multi-purpose 2D vector class. More...
 
class  Point3D
 Multi-purpose 3D vector class. More...
 
class  Point3DC
 Multi-purpose 3D vector class with confidence. More...
 
class  Point3DH
 Multi-purpose 3D vector class (homogeneous). More...
 
class  PointCloud
 A point cloud object. More...
 
class  PointCloudFactory
 Factory object for creating point cloud objects. More...
 
class  Polygon3D
 A polygon in 3D space. More...
 
class  Rect
 Rectangle object. More...
 
class  RectLT
 Rectangle object. More...
 
class  RefValue
 This class holds mutable references to K values of type T. More...
 
class  ScatterAccess
 Access trait for multiple, possibly scattered planes. More...
 
class  SensorSettings
 Class to store camera sensor settings. More...
 
class  Size2D
 Stores a pair of numbers that represents the width and the height of a subject, typically a rectangle. More...
 
class  SparseComponentsPointers3D
 Point components of a sparse point cloud. More...
 
class  SparsePointCloud
 A sparse Cartesian 3D point cloud object. More...
 
class  ValueAccessBase
 Common base class for access traits, providing typed Value access to planes. More...
 
class  ValueRange
 Container for range definitions. More...
 
class  Vpat
 Virtual Pixel Access Table. More...
 
class  WhiteBalanceFactors
 Factors for white balance correction. More...
 
class  WrappedImage
 A wrapped image wraps another pixel buffer without owning it. More...
 

Typedefs

using CompositeVariant = Cvb::variant< ImagePtr, PlanePtr, PlaneEnumeratorPtr, BufferPtr, PFNCBufferPtr, HandleOnlyPtr >
 Variant that can contain the different types of composite items.
 
using PointCloudPtr = std::shared_ptr< PointCloud >
 Convenience shared pointer for PointCloud.
 
using DensePointCloudPtr = std::shared_ptr< DensePointCloud >
 Convenience shared pointer for DensePointCloud.
 
using SparsePointCloudPtr = std::shared_ptr< SparsePointCloud >
 Convenience shared pointer for SparsePointCloud.
 
using Calibrator3DPtr = std::shared_ptr< Calibrator3D >
 Convenience shared pointer for Calibrator3D.
 
using AtCalibrator3DPtr = std::shared_ptr< AtCalibrator3D >
 Convenience shared pointer for AtCalibrator3D.
 
using FactorsCalibrator3DPtr = std::shared_ptr< FactorsCalibrator3D >
 Convenience shared pointer for FactorsCalibrator3D.
 
using MatrixCalibrator3DPtr = std::shared_ptr< MatrixCalibrator3D >
 Convenience shared pointer for MatrixCalibrator3D.
 
using PinholeCameraCalibrator3DPtr = std::shared_ptr< PinholeCameraCalibrator3D >
 Convenience shared pointer for PinholeCameraCalibrator3D.
 
using LaserPlaneCalibrator3DPtr = std::shared_ptr< LaserPlaneCalibrator3D >
 Convenience shared pointer for LaserPlaneCalibrator3D.
 
using LaserPlaneHomographyCalibrator3DPtr = std::shared_ptr< LaserPlaneHomographyCalibrator3D >
 Convenience shared pointer for LaserPlaneHomographyCalibrator3D.
 
using LaserPlaneZigZagCalibrator3DPtr = std::shared_ptr< LaserPlaneZigZagCalibrator3D >
 Convenience shared pointer for LaserPlaneZigZagCalibrator3D.
 
template<class T >
using MeshPtr = std::shared_ptr< Mesh< T > >
 Convenience shared pointer for Mesh.
 
using BufferPtr = std::shared_ptr< Buffer >
 Convenience shared pointer for Buffer.
 
using BufferBasePtr = std::shared_ptr< BufferBase >
 Convenience shared pointer for BufferBase.
 
using PFNCBufferPtr = std::shared_ptr< PFNCBuffer >
 Convenience shared pointer for PFNCBuffer.
 
using PlanePtr = std::shared_ptr< Plane >
 Convenience shared pointer for Plane.
 
using PlaneEnumeratorPtr = std::shared_ptr< PlaneEnumerator >
 Convenience shared pointer for PlaneEnumerator.
 
using ImagePtr = std::shared_ptr< Image >
 Convenience shared pointer for Image.
 
using WrappedImagePtr = std::shared_ptr< WrappedImage >
 Convenience shared pointer for WrappedImage.
 
using PanoramicMappedImagePtr = std::shared_ptr< PanoramicMappedImage >
 Convenience shared pointer for PanoramicMappedImageImage.
 
using DevicePtr = std::shared_ptr< Device >
 Convenience shared pointer for Device.
 
using CompositePtr = std::shared_ptr< Composite >
 Convenience shared pointer for Composite.
 
using HandleOnlyPtr = std::shared_ptr< HandleOnly >
 Convenience shared pointer for HandleOnly.
 
using CancellationTokenPtr = std::shared_ptr< CancellationToken >
 Convenience shared pointer for CancellationToken.
 
using CancellationTokenSourcePtr = std::shared_ptr< CancellationTokenSource >
 Convenience shared pointer for CancellationTokenSource.
 
template<class T >
using Vector2D = Point2D< T >
 Alias for Point2D.
 
template<class T >
using Vector3D = Point3D< T >
 Alias for Point3D.
 
template<class T >
using Vector3DC = Point3DC< T >
 Alias for Point3D.
 
template<class T >
using Vector3DH = Point3DH< T >
 Alias for Point3D.
 
using String = std::string
 String for wide characters or unicode characters. More...
 
using StringStream = std::stringstream
 String stream for wide characters or unicode characters. More...
 
using Char = char
 Character type for wide characters or unicode characters. More...
 
using Regex = std::regex
 Regular expression for wide characters or unicode characters. More...
 

Enumerations

enum class  PointCloudFlags {
  Float = CExports::CVC3DPCF_DTFloat , Double = CExports::CVC3DPCF_DTDouble , XYZ = CExports::CVC3DPCF_XYZ , XYZW = CExports::CVC3DPCF_XYZW ,
  XYZConfidence = CExports::CVC3DPCF_XYZConfidence , WithConfidence = CExports::CVC3DPCF_WithConfidence , NoExtrinsic = CExports::CVC3DPCF_NoExtrinsic , NoMeshIndices = CExports::CVC3DPCF_NoMeshIndices
}
 Flags for creating point clouds. More...
 
enum  PointCloudFileFormat { Ascii = CExports::CVC3DPCFF_Ascii , Ply = CExports::CVC3DPCFF_Ply , Stl = CExports::CVC3DPCFF_Stl , WavefrontObj = CExports::CVC3DPCFF_WavefrontObj , Tiff = CExports::CVC3DPCFF_Tiff }
 Supported point cloud point formats. More...
 
enum class  PointCloudLayout {
  Invalid = CExports::CVC3DPCL_Invalid , Linear = CExports::CVC3DPCL_Linear , SeparatePlanar = CExports::CVC3DPCL_SeparatePlanar , Planar = CExports::CVC3DPCL_Planar ,
  Interleaved = CExports::CVC3DPCL_Interleaved
}
 Supported point cloud point layouts. More...
 
enum class  DownSampleMode { DownsampleByFactor = CExports::CVC3DDownsampleByFactor , RemoveRandomly = CExports::CVC3DRemoveRandomly }
 Specifies how to remove points from a point cloud. More...
 
enum class  SensorPixelPosition { Absolute = CExports::CVC3DSPP_Absolute , Relative = CExports::CVC3DSPP_Relative }
 Indicates pixel position on sensor. More...
 
enum class  SensorPixelsMirrored { None = CExports::CVC3DSPM_None , X = CExports::CVC3DSPM_X , Y = CExports::CVC3DSPM_Y , XY = CExports::CVC3DSPM_XY }
 Indicates if sensor pixels are mirrored in rangemap. More...
 
enum class  CropRange { CropWithinRange = CExports::CVC3DC_CropWithinRange , CropOutsideRange = CExports::CVC3DC_CropOutsideRange }
 Indicates cropping range. More...
 
enum class  CropDirection { Below = 0 , Above = 1 }
 Indicates cropping direction. More...
 
enum class  PixelDataType {
  Undefined , UInt , Int , Float ,
  ComplexPackedFloat
}
 Defines the numeric data type of one pixel. More...
 
enum class  ColorModel {
  RGBGuess = CExports::CM_Guess_RGB , MonoGuess = CExports::CM_Guess_Mono , Unknown = CExports::CM_Unknown , Mono = CExports::CM_Mono ,
  RGB = CExports::CM_RGB , YUV = CExports::CM_YUV , HSI = CExports::CM_HSI , YCbCr = CExports::CM_YCbCr ,
  CieLUV = CExports::CM_LUV , CieLab = CExports::CM_Lab , HLS = CExports::CM_HLS , YCC = CExports::CM_YCC ,
  HSV = CExports::CM_HSV , CieXYZ = CExports::CM_XYZ
}
 Color model that this image is using. More...
 
enum class  DeviceUpdateMode { UpdateDeviceImage , NewDeviceImage }
 Defines how to treat the optional device image, when the device itself is updated. More...
 
enum class  PlaneNormalization { Individual , Identical }
 Plane handling for normalization. More...
 
enum class  CoordinateSystemType { PixelCoordinates , ImageCoordinates }
 Enumeration of the different available coordinate systems that an Area of interest may be defined in. More...
 
enum class  SubPixelMode { ParabolicFast = CExports::TSubPixelMode::SP_Parabolic_Fast , ParabolicAccurate = CExports::TSubPixelMode::SP_Parabolic_Accurate , Gaussian = CExports::TSubPixelMode::SP_Gauss }
 Method for determining sub pixel accuracy when working with the FindLocalMaxima functions. More...
 
enum class  Neighborhood { Use3x3 = 1 , Use5x5 = 2 , Use7x7 = 3 , Use9x9 = 4 }
 Neighborhood to use in sub pixel calculation of local maxima. More...
 
enum class  MappingOption { CopyPixels , LinkPixels }
 Mapping options when creating a (potentially) mapped image. More...
 
enum class  WaitStatus { Ok = CExports::CVDWS_Ok , Timeout = CExports::CVDWS_Timeout , Abort = CExports::CVDWS_Canceled }
 Status after waiting for an image to be returned. More...
 
enum class  PlaneRole {
  Undefined = CExports::CVCPR_Undefined , PixMono = CExports::CVCPR_PixMono , PixRGB_R = CExports::CVCPR_PixRGB_R , PixRGB_G = CExports::CVCPR_PixRGB_G ,
  PixRGB_B = CExports::CVCPR_PixRGB_B , PixYUV_Y = CExports::CVCPR_PixYUV_Y , PixYUV_U = CExports::CVCPR_PixYUV_U , PixYUV_V = CExports::CVCPR_PixYUV_V ,
  PixHSV_H = CExports::CVCPR_PixHSV_H , PixHSV_S = CExports::CVCPR_PixHSV_S , PixHSV_V = CExports::CVCPR_PixHSV_V , PixLAB_L = CExports::CVCPR_PixLAB_L ,
  PixLAB_A = CExports::CVCPR_PixLAB_A , PixLAB_B = CExports::CVCPR_PixLAB_B , PixConfidence = CExports::CVCPR_PixConfidence , CoordCartesian_X = CExports::CVCPR_CoordCartesian_X ,
  CoordCartesian_Y = CExports::CVCPR_CoordCartesian_Y , CoordCartesian_Z = CExports::CVCPR_CoordCartesian_Z , CoordCartesian_W = CExports::CVCPR_CoordCartesian_W , CoordPolar_Rho = CExports::CVCPR_CoordPolar_Rho ,
  CoordPolar_Phi = CExports::CVCPR_CoordPolar_Phi , CoordCylindrical_Rho = CExports::CVCPR_CoordCylindrical_Rho , CoordCylindrical_Phi = CExports::CVCPR_CoordCylindrical_Phi , CoordCylindrical_Z = CExports::CVCPR_CoordCylindrical_Z ,
  CoordSpherical_Rho = CExports::CVCPR_CoordSpherical_Rho , CoordSpherical_Phi = CExports::CVCPR_CoordSpherical_Phi , CoordSpherical_Theta = CExports::CVCPR_CoordSpherical_Theta , Normal_X = CExports::CVCPR_Normal_X ,
  Normal_Y = CExports::CVCPR_Normal_Y , Normal_Z = CExports::CVCPR_Normal_Z , PointPlanarity = CExports::CVCPR_Point_Planarity , PointVariation = CExports::CVCPR_Point_Variation ,
  PointSphericity = CExports::CVCPR_Point_Sphericity , PointLinearity = CExports::CVCPR_Point_Linearity , PointCurvature = CExports::CVCPR_Point_Curvature , Custom = CExports::CVCPR_Custom
}
 A plane role describes the components of the plane. They can coarsely be separated in two sets. More...
 
enum class  PanoramaDirection { Horizontal = CExports::PM_Horizontal , Vertical = CExports::PM_Vertical }
 Defines the direction of the panoramic image. More...
 
enum class  ConnectionState { NotSupported , Connected , Disconnected }
 Current connection state of the Device. More...
 
enum class  ConversionMode { Automatic }
 Mode used by conversion to dense point cloud. More...
 

Functions

template<class VISITOR >
auto Visit (VISITOR &&visitor, const PointCloud &cloud)
 Creates a Cvb::Block based on the cloud object's access trait and pixel type and calls the given visitor with it. More...
 
template<class T , class VISITOR >
auto VisitAs (VISITOR &&visitor, const PointCloud &cloud)
 Creates a Cvb::Block based on the cloud object's access trait and given pixel type T and calls the given visitor with it. More...
 
template<class VISITOR , class... PLNS>
auto Visit (VISITOR &&visitor, const Plane &plane, const PLNS &... planes)
 Creates a Cvb::Block based on the plane and planes objects' access traits and pixel type and calls the given visitor with it. More...
 
template<class T , class VISITOR , class... PLNS>
auto VisitAs (VISITOR &&visitor, const Plane &plane, const PLNS &... planes)
 Creates a Cvb::Block based on the plane and planes objects' access traits and given pixel type T and calls the given visitor with it. More...
 
template<class VISITOR , class... PLANEARGS>
auto Visit (VISITOR &&visitor, const ImagePlane &plane, const PLANEARGS &... planes)
 Creates Cvb::Blocks based on the planes objects' access traits and pixel type, and calls the given visitor with them. More...
 
template<class PIXEL_TYPE , class VISITOR , class... PLANEARGS>
auto VisitAs (VISITOR &&visitor, const ImagePlane &plane, const PLANEARGS &... planes)
 Creates Cvb::Blocks based on the planes objects' access traits and PIXEL_TYPE and calls the given visitor with them. When the PIXEL_TYPE is compile-time known, this overload is useful to avoid unnecessary template instantiations. More...
 
template<class VISITOR , class PLANE_T , class... PLANEARGS, std::enable_if_t< std::is_same< typename PlaneTraits< PLANE_T >::PlaneT, PLANE_T >::value, int > = 0>
auto Visit (VISITOR &&visitor, const PLANE_T &plane, const PLANEARGS &... planes)
 Creates a Cvb::Block based on the plane and planes objects' access traits and pixel type and calls the given visitor with it. More...
 
template<class T , class VISITOR , class PLANE_T , class... PLANEARGS, std::enable_if_t< std::is_same< typename PlaneTraits< PLANE_T >::PlaneT, PLANE_T >::value, int > = 0>
auto VisitAs (VISITOR &&visitor, const PLANE_T &plane, const PLANEARGS &... planes)
 Creates Cvb::Blocks based on the planes objects' access traits and T and calls the given visitor with them. When the T is compile-time known, this variant is useful to avoid unnecessary template instantiations. More...
 
bool IsInterleaved (size_t bytesPerPixel, const ArrayAccess &access0, const ArrayAccess &access1) noexcept
 
bool IsInterleaved (size_t bytesPerPixel, const LinearAccessData &access0, const LinearAccessData &access1) noexcept
 
AffineMatrix2D operator+ (const AffineMatrix2D &lhs, const AffineMatrix2D &rhs) noexcept
 Add two affine matrices. More...
 
AffineMatrix2D operator- (const AffineMatrix2D &lhs, const AffineMatrix2D &rhs) noexcept
 Subtract two affine matrices. More...
 
AffineMatrix2D operator* (const AffineMatrix2D &lhs, const AffineMatrix2D &rhs) noexcept
 Multiply two affine matrices. More...
 
Point2D< double > operator* (const AffineMatrix2D &lhs, const Point2D< double > &rhs) noexcept
 Multiply affine matrix with 2D point. More...
 
AffineMatrix2D operator* (const AffineMatrix2D &lhs, const double &rhs) noexcept
 Multiply affine matrix with scalar. More...
 
AffineMatrix2D operator* (const double &lhs, const AffineMatrix2D &rhs) noexcept
 Multiply scalar with affine matrix . More...
 
AffineMatrix2D operator/ (const AffineMatrix2D &lhs, const double &rhs)
 Divide affine matrix by scalar. More...
 
AffineMatrix3D operator+ (const AffineMatrix3D &lhs, const AffineMatrix3D &rhs) noexcept
 Add two transformations. More...
 
AffineMatrix3D operator- (const AffineMatrix3D &lhs, const AffineMatrix3D &rhs) noexcept
 Subtract two transformations. More...
 
AffineMatrix3D operator* (const AffineMatrix3D &lhs, const AffineMatrix3D &rhs)
 Multiply two transformations. More...
 
AffineMatrix3D operator* (const AffineMatrix3D &lhs, const double &rhs) noexcept
 Multiply transformation with scalar. More...
 
AffineMatrix3D operator* (const double &lhs, const AffineMatrix3D &rhs) noexcept
 Multiply scalar with transformation. More...
 
AffineMatrix3D operator/ (const AffineMatrix3D &lhs, const double &rhs)
 Divide transformation by scalar. More...
 
std::unique_ptr< ImageAffineTransform (const Image &image, AffineMatrix2D affineMatrix, Area2D area)
 Creates an affine transformation (homogeneous matrix transformation) of an area of the given image. More...
 
std::unique_ptr< ImageAffineTransform (const Image &image, AffineMatrix2D affineMatrix)
 Creates an affine transformation (homogeneous matrix transformation) of the whole image. More...
 
std::unique_ptr< ImageLinearTransform (const Image &image, Matrix2D matrix)
 Creates a linear transformation (matrix transformation). More...
 
std::unique_ptr< ImageMapTo8Bit (const Image &image, PlaneNormalization planeNormalization=PlaneNormalization::Identical)
 Take an input image and scale the pixel values to fit into the 8 bit value range. More...
 
std::unique_ptr< ImageNormalizeMinMax (const Image &image, double targetMin, double targetMax)
 Normalize an input image using min/max normalization (the gray values of the image will be stretched or compressed to fit the input target minimum and maximum values). More...
 
std::unique_ptr< ImageNormalizeMeanVariance (const Image &image, double targetMean, double targetVariance)
 Normalize an input image using mean/variance normalization (the gray values of the image will be stretched modified to generate a histogram as close as possible to the input target mean and variance values). More...
 
std::unique_ptr< ImagePolarTransform (const Image &image, Point2D< double > center, double innerRadius, double outerRadius, Angle startAngle, Angle totalAngle)
 Create a polar transformation (i.e. unwrap a ring structure from inside source image into a rectangular image). More...
 
std::unique_ptr< ImagePolarTransform (const Image &image, Point2D< double > center, double innerRadius, double outerRadius)
 Create a polar transformation (i.e. unwrap a ring structure from inside source image into a rectangular image). More...
 
std::unique_ptr< ImageInversePolarTransform (const Image &image, Angle startAngle, double innerRadius)
 
void InversePolarTransformToDst (const Image &imageSrc, Point2D< double > center, Angle startAngle, double innerRadius, Image &imageDst)
 Create an inverse polar transformed image (i.e. transform an unwrapped image back into a ring structure). More...
 
std::vector< int > Histogram (const ImagePlane &plane, Area2D aoi, double density=1.0)
 Gather and return the histogram from an 8 bits per pixel unsigned image. More...
 
std::vector< int > Histogram (const ImagePlane &plane, double density=1.0)
 Gather and return the histogram from an 8 bits per pixel unsigned image. More...
 
std::vector< LocalMaximumFindLocalMaxima (const ImagePlane &plane, int locality, double threshold, Rect< int > aoi)
 Find local maxima in the input image. More...
 
std::vector< LocalMaximumFindLocalMaxima (const ImagePlane &plane, int locality, double threshold)
 Find local maxima in the input image. More...
 
std::vector< LocalMaximumFindLocalMaxima (const ImagePlane &plane, int locality, double threshold, SubPixelMode mode, Neighborhood radius, Rect< int > aoi)
 Find sub pixel accurate local maxima in the input image. More...
 
std::vector< LocalMaximumFindLocalMaxima (const ImagePlane &plane, int locality, double threshold, SubPixelMode mode, Neighborhood radius)
 Find sub pixel accurate local maxima in the input image. More...
 
Angle operator+ (const Angle &lhs, const Angle &rhs)
 Add two angles. More...
 
Angle operator- (const Angle &lhs, const Angle &rhs)
 Subtract two angles. More...
 
Angle operator/ (const Angle &lhs, const double &rhs)
 Divides an angle by a value. More...
 
Angle operator* (const Angle &lhs, const double &rhs)
 Multiplies an angle with a value. More...
 
Angle operator* (const double &lhs, const Angle &rhs)
 Multiplies value with an angle. More...
 
Angle Abs (Angle angle) noexcept
 Absolute value of an angle. More...
 
Angle Acos (double d) noexcept
 Returns the angle whose cosine is the specified number. More...
 
Angle Asin (double d) noexcept
 Returns the angle whose sine is the specified number. More...
 
Angle Atan (double d) noexcept
 Returns the angle whose tangent is the specified number. More...
 
Angle Atan2 (double y, double x) noexcept
 Returns the angle whose tangent is the quotient of two specified numbers. More...
 
double Cos (Angle angle) noexcept
 Returns the cosine of an angle. More...
 
double Cosh (Angle angle) noexcept
 Returns the hyperbolic cosine of an angle. More...
 
double Sin (Angle angle) noexcept
 Returns the sine of an angle. More...
 
double Sinh (Angle angle) noexcept
 Returns the hyperbolic sine of an angle. More...
 
double Tan (Angle angle) noexcept
 Returns the tangent of an angle. More...
 
double Tanh (Angle angle) noexcept
 Returns the hyperbolic tangent of an angle. More...
 
int Sign (Angle angle) noexcept
 Returns a value indicating the sign of an Angle. More...
 
Angle Max (Angle a, Angle b) noexcept
 Returns the bigger of two angles. More...
 
Angle Min (Angle a, Angle b) noexcept
 Returns the smaller of two angles. More...
 
Matrix2D operator+ (const Matrix2D &lhs, const Matrix2D &rhs)
 Add two matrices. More...
 
Matrix2D operator- (const Matrix2D &lhs, const Matrix2D &rhs)
 Substract two matrices. More...
 
Matrix2D operator* (const Matrix2D &lhs, const Matrix2D &rhs)
 Multiply two matrices. More...
 
Point2D< double > operator* (const Matrix2D &lhs, const Point2D< double > &rhs)
 Multiply matrix with 2D point. More...
 
Matrix2D operator* (const Matrix2D &lhs, const double &rhs)
 Multiply matrix with scalar. More...
 
Matrix2D operator* (const double &lhs, const Matrix2D &rhs)
 Multiply scalar with matrix . More...
 
Matrix2D operator/ (const Matrix2D &lhs, const double &rhs)
 Divide matrix by scalar. More...
 
Matrix3D operator+ (const Matrix3D &lhs, const Matrix3D &rhs)
 Add two matrices. More...
 
Matrix3D operator- (const Matrix3D &lhs, const Matrix3D &rhs)
 Subtract two matrices. More...
 
Matrix3D operator* (const Matrix3D &lhs, const Matrix3D &rhs)
 Multiply two matrices. More...
 
Point3D< double > operator* (const Matrix3D &lhs, const Point3D< double > &rhs)
 Multiply matrix with 3D point. More...
 
Matrix3D operator* (const Matrix3D &lhs, const double &rhs)
 Multiply matrix with scalar. More...
 
Matrix3D operator* (const double &lhs, const Matrix3D &rhs)
 Multiply scalar with matrix . More...
 
Matrix3D operator/ (const Matrix3D &lhs, const double &rhs)
 Divide matrix by scalar. More...
 
Matrix3DH operator+ (const Matrix3DH &lhs, const Matrix3DH &rhs)
 Add two matrices. More...
 
Matrix3DH operator- (const Matrix3DH &lhs, const Matrix3DH &rhs)
 Subtract two matrices. More...
 
Point3DH< double > operator* (const Matrix3DH &lhs, const Point3DH< double > &rhs)
 Multiply matrix with 3D point (homogeneous). More...
 
Matrix3DH operator* (const Matrix3DH &lhs, const double &rhs)
 Multiply matrix with scalar. More...
 
Matrix3DH operator* (const double &lhs, const Matrix3DH &rhs)
 Multiply scalar with matrix . More...
 
Matrix3DH operator/ (const Matrix3DH &lhs, const double &rhs)
 Divide matrix by scalar. More...
 
template<class T >
Point2D< T > operator+ (const Point2D< T > &lhs, const Point2D< T > &rhs)
 Add two points. More...
 
template<class T >
Point2D< T > operator- (const Point2D< T > &lhs, const Point2D< T > &rhs)
 Subtracts two points. More...
 
template<class T >
operator* (const Point2D< T > &lhs, const Point2D< T > &rhs)
 Inner product of two point vectors. More...
 
template<class T >
Point2D< T > operator* (const Point2D< T > &lhs, const T &rhs)
 Multiply point with scalar. More...
 
template<class T >
Point2D< T > operator* (const T &lhs, const Point2D< T > &rhs)
 Multiply scalar with point. More...
 
template<class T >
Point2D< T > operator/ (const Point2D< T > &lhs, const T &rhs)
 Divide point by scalar. More...
 
template<class T >
Point2D< int > Round (const Point2D< T > &rhs) noexcept
 Round to an integer point. More...
 
template<class T >
Point3D< T > operator- (const Point3D< T > &lhs, const Point3D< T > &rhs)
 Subtracts two points. More...
 
template<class T >
operator* (const Point3D< T > &lhs, const Point3D< T > &rhs)
 Inner product of two point vectors. More...
 
template<class T >
Point3D< T > operator* (const Point3D< T > &lhs, const T &rhs)
 Multiply point with scalar. More...
 
template<class T >
Point3D< T > operator* (const T &lhs, const Point3D< T > &rhs)
 Multiply scalar with point. More...
 
template<class T >
Point3D< T > operator/ (const Point3D< T > &lhs, const T &rhs)
 Divide point by scalar. More...
 
template<class T >
Point3D< int > Round (const Point3D< T > &rhs) noexcept
 Round to an integer point. More...
 
template<class T >
Point3DC< T > operator- (const Point3DC< T > &lhs, const Point3DC< T > &rhs)
 Subtracts two points. More...
 
template<class T >
operator* (const Point3DC< T > &lhs, const Point3DC< T > &rhs)
 Inner product of two point vectors. More...
 
template<class T >
Point3DC< T > operator* (const Point3DC< T > &lhs, const T &rhs)
 Multiply point with scalar. More...
 
template<class T >
Point3DC< T > operator* (const T &lhs, const Point3DC< T > &rhs)
 Multiply scalar with point. More...
 
template<class T >
Point3DC< T > operator/ (const Point3DC< T > &lhs, const T &rhs)
 Divide point by scalar. More...
 
template<class T >
Point3DH< T > operator- (const Point3DH< T > &lhs, const Point3DH< T > &rhs)
 Subtracts two points. More...
 
template<class T >
operator* (const Point3DH< T > &lhs, const Point3DH< T > &rhs)
 Inner product of two point vectors. More...
 
template<class T >
Point3DH< T > operator* (const Point3DH< T > &lhs, const T &rhs)
 Multiply point with scalar. More...
 
template<class T >
Point3DH< T > operator* (const T &lhs, const Point3DH< T > &rhs)
 Multiply scalar with point. More...
 
template<class T >
Point3DH< T > operator/ (const Point3DH< T > &lhs, const T &rhs)
 Divide point by scalar. More...
 
CVB_BEGIN_INLINE_NS std::unique_ptr< Cvb::ImageDifferenceMap (const ImagePlane &rangeMap1, const ImagePlane &rangeMap2)
 Creates a new range map image via linear projection in negative z-direction. More...
 
template<class T >
Rect< int > Round (const Rect< T > &rhs) noexcept
 Round to an integer rectangle. More...
 
template<class T >
RectLT< int > Round (const RectLT< T > &rhs) noexcept
 Round to an integer rectangle. More...
 
template<class T >
Size2D< int > Round (const Size2D< T > &rhs) noexcept
 Rounds to an integer size. More...
 
template<class T >
ValueRange< int > Round (const ValueRange< T > &rhs) noexcept
 Rounds to an integer value range. More...
 
WhiteBalanceFactors CalculateWhiteBalanceFactors (const Image &image, Area2D aoi)
 Calculate the red, green and blue gain factor for white balancing. More...
 
void ApplyWhiteBalanceFactors (const Image &image, WhiteBalanceFactors factors)
 Applies the white balance factors to the given image. More...
 

Variables

static const constexpr int Dynamic = -1
 Use with ScatterAccess for runtime variable number of planes.
 

Detailed Description

Root namespace for the Image Manager interface.

This namespace groups all parts of the C++ interface to the classic CVB API. The classes directly within this namespace are usually your entry point when programming.

Note
All types under this namespace have unique names, therefore all types are mapped to this namespace for convenience.
Attention
In order to use processing functions from this namespace include cvb/algorithm.hpp.
In order to use range map functions from this namespace include cvb/range_map.hpp.
Remarks
CMake users: Link to imported target CVB::Cvb

Typedef Documentation

◆ Char

using Char = char

Character type for wide characters or unicode characters.

Wide characters are default on windows, to use unicode characters define UNICODE. If you want to use platform independent string literals you may use the CVB_LIT macro.

◆ Regex

using Regex = std::regex

Regular expression for wide characters or unicode characters.

Wide characters are default on windows, to use unicode characters define UNICODE. If you want to use platform independent string literals you may use the CVB_LIT macro.

◆ String

String for wide characters or unicode characters.

Wide characters are default on windows, to use unicode characters define UNICODE. If you want to use platform independent string literals you may use the CVB_LIT macro.

Examples
Cvb/CameraConfig, Cvb/CppStreamConsole, Cvb/QtPropertyGrid, Cvb/QtStreamDisplay, and Cvb/QtStreamDisplayPair.

◆ StringStream

String stream for wide characters or unicode characters.

Wide characters are default on windows, to use unicode characters define UNICODE. If you want to use platform independent string literals you may use the CVB_LIT macro.

Enumeration Type Documentation

◆ ColorModel

enum class ColorModel
strong

Color model that this image is using.

Enumerator
RGBGuess 

Color space was not explicitly specified, but is likely to be RGB.

MonoGuess 

Color space was not explicitly specified, but is likely to be monochrome.

Unknown 

Color space is not known.

Mono 

Monochrome color space.

RGB 

RGB color space.

YUV 

YUV color space.

HSI 

HSI color space.

YCbCr 

YCbCr color model.

CieLUV 

CIE LUV color model.

CieLab 

CIE Lab color model.

HLS 

HLS (Hue, Lightness, Saturation) color model.

YCC 

YCC color model.

HSV 

HSV (Hue, Saturation, Value) color model.

CieXYZ 

CIE XYZ color model.

◆ ConnectionState

enum class ConnectionState
strong

Current connection state of the Device.

Enumerator
NotSupported 

Connection state handling is not supported by the Device.

Connected 

The Device object is currently connected to the remote hardware.

Disconnected 

The Device object is currently disconnected from the remote hardware.

◆ ConversionMode

enum class ConversionMode
strong

Mode used by conversion to dense point cloud.

Enumerator
Automatic 

Automatically determines resolution and which points to keep in the resulting dense point cloud.

◆ CoordinateSystemType

enum class CoordinateSystemType
strong

Enumeration of the different available coordinate systems that an Area of interest may be defined in.

Enumerator
PixelCoordinates 

Pixel coordinates are defined as follows:

  • The distance from one pixel to the next in horizontal or vertical direction has a length of 1.
  • The origin (0,0) is located in the top left corner of the image.
  • The positive x-axis points right, the positive y-axis points down.
ImageCoordinates 

The image coordinate system is defined in the image and specifies an affine linear transformation from the pixel coordinate system to the image coordinate system. It is a right handed coordinate system: the positive y-axis points "down", the positive x-axis points right.

◆ CropDirection

enum class CropDirection
strong

Indicates cropping direction.

Enumerator
Below 

Crop below given plane.

Above 

Crop above given plane.

◆ CropRange

enum class CropRange
strong

Indicates cropping range.

Enumerator
CropWithinRange 

Crops points within given range.

CropOutsideRange 

Crops points outside given range.

◆ DeviceUpdateMode

enum class DeviceUpdateMode
strong

Defines how to treat the optional device image, when the device itself is updated.

A method containing this as a parameter indicates a handle change. This invalidates the old handle in a way that no interfaces are available anymore. The only thing remaining is the old ring buffer, but only with access to the last synchronized buffer.

Note
If a method call containing this as a parameter succeeds it is necessary for the client application to update the handle in objects, that only use handle.
See also
CvbDevice.Handle()
Enumerator
UpdateDeviceImage 

Updates the handle of any existing device image.

If unsure use this as the default.

The result of this operation is that the currently active device image is moved to the new device image internally. The result is that the current image buffer is lost and replaced by an empty/black buffer.

NewDeviceImage 

Creates a new device image keeping the old one intact.

Use this option if you still do processing on the old image data while performing the switch operation.

Attention
If you bound the old device image to a display or used it in another control to always access the current image data, keep in mind that you need to assign the new device image of the device manually.

◆ DownSampleMode

enum class DownSampleMode
strong

Specifies how to remove points from a point cloud.

Enumerator
DownsampleByFactor 

Remove points by an integer factor.

RemoveRandomly 

Remove a specified number of points randomly.

◆ MappingOption

enum class MappingOption
strong

Mapping options when creating a (potentially) mapped image.

Enumerator
CopyPixels 

Create a deep copy of the source pixels

LinkPixels 

Create a linked copy of the source pixels, that shares the memory of the source pixels. That means, changes to one image affect the linked image as well.

◆ Neighborhood

enum class Neighborhood
strong

Neighborhood to use in sub pixel calculation of local maxima.

The bigger the neighborhood for calculation is, the longer the sub pixel fit will take.

Enumerator
Use3x3 

3x3 environment around the pixel-accurate result.

Use5x5 

5x5 environment around the pixel-accurate result.

Use7x7 

7x7 environment around the pixel-accurate result.

Use9x9 

9x9 environment around the pixel-accurate result.

◆ PanoramaDirection

enum class PanoramaDirection
strong

Defines the direction of the panoramic image.

Enumerator
Horizontal 

Images are stitched horizontally.

Vertical 

Images are stitched vertically.

◆ PixelDataType

enum class PixelDataType
strong

Defines the numeric data type of one pixel.

Enumerator
Undefined 

Indeterminable data type. (The native CVB data type descriptor can take all sorts of weird values).

UInt 

Unsigned integer.

Int 

Signed integer.

Float 

Floating point number.

ComplexPackedFloat 

Complex packed floating point number.

◆ PlaneNormalization

enum class PlaneNormalization
strong

Plane handling for normalization.

Enumerator
Individual 

Each plane is normalized separately.

Identical 

All planes are normalize the same way.

◆ PlaneRole

enum class PlaneRole
strong

A plane role describes the components of the plane. They can coarsely be separated in two sets.

  1. pixel roles (normally for 2D images)
  2. coordinate roles (normally for point clouds)
Enumerator
Undefined 

Unknown/undefined value.

PixMono 

Monochromatic, linear luminance value.

PixRGB_R 

Red channel value.

PixRGB_G 

Green channel value.

PixRGB_B 

Blue channel value.

PixYUV_Y 

Same as PixMono, but to distinguish YUV model.

PixYUV_U 

Blue chrominance channel.

PixYUV_V 

Red chrominance channel.

PixHSV_H 

Hue channel value.

PixHSV_V 

Value(luminance) channel value.

PixLAB_L 

Lightness channel value.

PixLAB_A 

Green-red chrominance channel.

PixLAB_B 

Blue-yellow chrominance channel.

PixConfidence 

Confidence(probability density / percentage) or consistency(Boolean) value.

CoordCartesian_X 

Cartesian X axis component.

CoordCartesian_Y 

Cartesian Y axis component.

CoordCartesian_Z 

Cartesian Z axis component.

CoordCartesian_W 

Cartesian W axis component (homogeneous coordinates).

CoordPolar_Rho 

Polar radius component.

CoordPolar_Phi 

Polar azimuth angle component.

CoordCylindrical_Rho 

Cylindrical radius component.

CoordCylindrical_Phi 

Cylindrical azimuth angle component.

CoordCylindrical_Z 

Cylindrical Z axis component.

CoordSpherical_Rho 

Spherical radius component.

CoordSpherical_Phi 

Spherical azimuth angle component.

CoordSpherical_Theta 

Spherical inclination/polar angle component.

Normal_X 

Normal in X.

Normal_Y 

Normal in Y.

Normal_Z 

Normal in Z.

PointPlanarity 

Planarity of points in cloud.

PointVariation 

Variation of points in cloud.

PointSphericity 

Sphericity of points in cloud.

PointLinearity 

Linearity of points in cloud.

PointCurvature 

Curvature of points in cloud.

Custom 

Custom roles.

◆ PointCloudFileFormat

Supported point cloud point formats.

Enumerator
Ascii 

Ascii file format.

This format is usually specified by the filename extensions: .asc, .xyz, .pts or .txt.

Mesh information is ignored when loading or storing with this format.

Ply 

Polygon file format.

This format is usually specified by the filename extension: .ply It can be in binary or text format. Reading supports both formats, while writing will be in binary.

Loading and storing mesh information is supported with both reads and writes.

Stl 

Stereo lithography file format.

This format is usually specified by the filename extension: .stl

Loading mesh information is supported. For writing stl, mesh information must be present.*

Tiff 

TIFF file format.

This format is usually specified by the filename extensions: .tif or .tiff Reading and writing is supported only with files, not memory.

Mesh information is ignored when loading or storing with this format.

◆ PointCloudFlags

enum class PointCloudFlags
strong

Flags for creating point clouds.

Enumerator
Float 

Create the point cloud with float components.

Double 

Create the point cloud with double components.

XYZ 

Create the point cloud with three Cartesian components x, y, z.

XYZW 

Create the point cloud with four Cartesian, homogeneous components x, y, z, w.

XYZConfidence 

Create point cloud with three Cartesian components (x, y, z) and a confidence plane.

WithConfidence 

Create the point cloud with an additional confidence plane.

NoExtrinsic 

Only apply intrinsic calibration in Create(const Image& rangeMap...).

NoMeshIndices 

Do not load mesh information, even if present.

Note
This flag is for internal use only.

◆ PointCloudLayout

enum class PointCloudLayout
strong

Supported point cloud point layouts.

Enumerator
Invalid 

No known/supported point cloud format.

Linear 

No known buffer layout. For this layout only the plane roles X, Y and Z are known with their increments. Thus the PointCloud composite either has no buffer or no buffer, that can be mapped via a PFNC value.

SeparatePlanar 

Each plane is in its own, contiguous buffer. For each plane role X, Y and Z exists one distinct buffer. The increment to the next element is the element size (as in a simple array). If the component data types are float, the composite has at least three buffers with PFNC values Coord3D_A32f, Coord3D_B32f and Coord3D_C32f.

Planar 

All planes are in one planar, contiguous buffer. All plane roles X, Y and Z lie component wise one after the other. First all x, then all y and finally all z components. If the component data type is float, the composite has at least one buffer with a PFNC value of Coord3D_ABC32f_Planar.

Interleaved 

All points are stored x, y, z interleaved as in Point3D. All plane roles X, Y and Z lie point wise one after the other. If the component data type is float, the composite has at least one buffer with a PFNC value of Coord3D_ABC32f.

◆ SensorPixelPosition

enum class SensorPixelPosition
strong

Indicates pixel position on sensor.

Enumerator
Absolute 

Scaled rangemap values represent absolute pixel position on sensor.

Relative 

Scaled rangemap values represent relative pixel position to given offset on sensor.

◆ SensorPixelsMirrored

enum class SensorPixelsMirrored
strong

Indicates if sensor pixels are mirrored in rangemap.

Enumerator
None 

No mirroring is applied.

Sensor pixel values are mirrored in X (or denoted by u), so that the columns of the range map will be flipped.

Sensor pixel values are mirrored in Y (or denoted by v), so that the range map pixel values will be flipped.

XY 

Sensor pixel values are mirrored in X and Y.

◆ SubPixelMode

enum class SubPixelMode
strong

Method for determining sub pixel accuracy when working with the FindLocalMaxima functions.

Enumerator
ParabolicFast 

An approximate parabolic fit. Results similar to the exact parabolic fit as long as the maximum is steep enough (i.e. not plateau shaped). Only usable with a 3x3 neighborhood.

ParabolicAccurate 

A full parabolic least squares fit.

Gaussian 

A Gaussian least squares fit.

◆ WaitStatus

enum class WaitStatus
strong

Status after waiting for an image to be returned.

Enumerator
Ok 

Everything is fine, a new image arrived.

Timeout 

A timeout occurred, no image buffer has been returned.

Abort 

The acquisition has been stopped asynchronously, there is no image buffer.

Function Documentation

◆ Abs()

Angle Abs ( Angle  angle)
inlinenoexcept

Absolute value of an angle.

Parameters
[in]angleThe angle.
Returns
Absolute value.
Exceptions
Doesnot throw any exception.

◆ Acos()

Angle Acos ( double  d)
inlinenoexcept

Returns the angle whose cosine is the specified number.

Parameters
[in]dCosine.
Returns
Result angle.
Exceptions
Doesnot throw any exception.

◆ AffineTransform() [1/2]

std::unique_ptr< Image > AffineTransform ( const Image image,
AffineMatrix2D  affineMatrix 
)
inline

Creates an affine transformation (homogeneous matrix transformation) of the whole image.

Parameters
[in]imageSource image.
[in]affineMatrixMatrix to transform the image.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ AffineTransform() [2/2]

std::unique_ptr< Image > AffineTransform ( const Image image,
AffineMatrix2D  affineMatrix,
Area2D  area 
)
inline

Creates an affine transformation (homogeneous matrix transformation) of an area of the given image.

Parameters
[in]imageSource image.
[in]affineMatrixMatrix to transform the image,
[in]areaArea of the image to transform.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ ApplyWhiteBalanceFactors()

void ApplyWhiteBalanceFactors ( const Image image,
WhiteBalanceFactors  factors 
)
inline

Applies the white balance factors to the given image.

Parameters
[in]imageImage to apply white-balance factors to.
[in]factorsGain factors to apply.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ Asin()

Angle Asin ( double  d)
inlinenoexcept

Returns the angle whose sine is the specified number.

Parameters
[in]dSine.
Returns
Result angle.
Exceptions
Doesnot throw any exception.

◆ Atan()

Angle Atan ( double  d)
inlinenoexcept

Returns the angle whose tangent is the specified number.

Parameters
[in]dTangent.
Returns
Result angle.
Exceptions
Doesnot throw any exception.

◆ Atan2()

Angle Atan2 ( double  y,
double  x 
)
inlinenoexcept

Returns the angle whose tangent is the quotient of two specified numbers.

Parameters
[in]yY parameter.
[in]xX parameter.
Returns
Result angle.
Exceptions
Doesnot throw any exception.

◆ CalculateWhiteBalanceFactors()

WhiteBalanceFactors CalculateWhiteBalanceFactors ( const Image image,
Area2D  aoi 
)
inline

Calculate the red, green and blue gain factor for white balancing.

Parameters
[in]imageImage on which the gain factors are to be calculated.
[in]aoiArea of interest that is assumed to be the neutral color.
Returns
Calculated white balance factors.
Exceptions
Anyexception derived from std::exception including CvbException.

Floating-point valued images must not have negative pixel values for this operation to yield useful output.

◆ Cos()

double Cos ( Angle  angle)
inlinenoexcept

Returns the cosine of an angle.

Parameters
[in]angleThe angle.
Returns
The cosine.
Exceptions
Doesnot throw any exception.

◆ Cosh()

double Cosh ( Angle  angle)
inlinenoexcept

Returns the hyperbolic cosine of an angle.

Parameters
[in]angleThe angle.
Returns
The hyperbolic cosine.
Exceptions
Doesnot throw any exception.

◆ DifferenceMap()

CVB_BEGIN_INLINE_NS std::unique_ptr< Cvb::Image > DifferenceMap ( const ImagePlane rangeMap1,
const ImagePlane rangeMap2 
)
inline

Creates a new range map image via linear projection in negative z-direction.

Parameters
[in]rangeMap1Range map object to subtract from.
[in]rangeMap2Range map object to subtract from rangeMap1.
Returns
The resulting difference map.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ FindLocalMaxima() [1/4]

std::vector< LocalMaximum > FindLocalMaxima ( const ImagePlane plane,
int  locality,
double  threshold 
)
inline

Find local maxima in the input image.

Parameters
[in]planeImage plane in which to look for maxima.
[in]localityMinimum distance between two valid maxima; if two maxima fall within this distance (measured using the L1 norm), the one with the lower gray value will be removed from the result.
[in]thresholdMinimum gray value a local maximum must have for being reported.
Returns
Vector of the local maxima that have been found.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ FindLocalMaxima() [2/4]

std::vector< LocalMaximum > FindLocalMaxima ( const ImagePlane plane,
int  locality,
double  threshold,
Rect< int >  aoi 
)
inline

Find local maxima in the input image.

Parameters
[in]planeImage plane in which to look for maxima.
[in]localityMinimum distance between two valid maxima; if two maxima fall within this distance (measured using the L1 norm), the one with the lower gray value will be removed from the result.
[in]thresholdMinimum gray value a local maximum must have for being reported.
[in]aoiRegion of interest in which to look for maxima.
Returns
Vector of the local maxima that have been found.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ FindLocalMaxima() [3/4]

std::vector< LocalMaximum > FindLocalMaxima ( const ImagePlane plane,
int  locality,
double  threshold,
SubPixelMode  mode,
Neighborhood  radius 
)
inline

Find sub pixel accurate local maxima in the input image.

Parameters
[in]planeImage plane in which to look for maxima.
[in]localityMinimum distance between two valid maxima; if two maxima fall within this distance (measured using the L1 norm), the one with the lower gray value will be removed from the result list.
[in]thresholdMinimum gray value a local maximum must have for being reported.
[in]modeMode to be used for determining sub pixel accuracy.
[in]radiusNeighborhood to take account in the sub pixel calculation.
Returns
Vector of the local maxima that have been found.
Exceptions
Anyexception derived from std::exception including CvbException.

Sub pixel accuracy is achieved by assuming a Gaussian or parabolic gray value distribution around a local maximum that can be fitted into the image data.

◆ FindLocalMaxima() [4/4]

std::vector< LocalMaximum > FindLocalMaxima ( const ImagePlane plane,
int  locality,
double  threshold,
SubPixelMode  mode,
Neighborhood  radius,
Rect< int >  aoi 
)
inline

Find sub pixel accurate local maxima in the input image.

Parameters
[in]planeImage plane in which to look for maxima.
[in]localityMinimum distance between two valid maxima; if two maxima fall within this distance (measured using the L1 norm), the one with the lower gray value will be removed from the result list.
[in]thresholdMinimum gray value a local maximum must have for being reported.
[in]modeMode to be used for determining sub pixel accuracy.
[in]radiusNeighborhood to take account in the sub pixel calculation.
[in]aoiRegion of interest in which to look for maxima.
Returns
Vector of the local maxima that have been found.
Exceptions
Anyexception derived from std::exception including CvbException.

Sub pixel accuracy is achieved by assuming a Gaussian or parabolic gray value distribution around a local maximum that can be fitted into the image data.

◆ Histogram() [1/2]

std::vector< int > Histogram ( const ImagePlane plane,
Area2D  aoi,
double  density = 1.0 
)
inline

Gather and return the histogram from an 8 bits per pixel unsigned image.

Parameters
[in]planePlane to gather the histogram from.
[in]aoiArea in which to gather the histogram.
[in]densityScan density to generate the histogram. It must be in the range [0...1]. Lower densities result in higher processing speed, but will also yield histograms, which are notably jagged due to the poor statistics.
Returns
Histogram as a vector of 256 integer values.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ Histogram() [2/2]

std::vector< int > Histogram ( const ImagePlane plane,
double  density = 1.0 
)
inline

Gather and return the histogram from an 8 bits per pixel unsigned image.

Parameters
[in]planePlane to gather the histogram from.
[in]densityScan density to gather the histogram with; must be in the range [0...1]; lower densities result in higher processing speed, but will also yield histograms which are notably jagged due to the poor statistics
Returns
Histogram as an vector of 256 integer values.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ InversePolarTransform()

std::unique_ptr< Image > InversePolarTransform ( const Image image,
Angle  startAngle,
double  innerRadius 
)
inline
Parameters
[in]imageSource image.
[in]startAngleOrientation of the start (the total azimuth will be determined from the input image).
[in]innerRadiusInner radius of the ring (the outer radius will be determined from the input image).
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

Linear interpolation is being used for the transformation.

◆ InversePolarTransformToDst()

void InversePolarTransformToDst ( const Image imageSrc,
Point2D< double >  center,
Angle  startAngle,
double  innerRadius,
Image imageDst 
)
inline

Create an inverse polar transformed image (i.e. transform an unwrapped image back into a ring structure).

Parameters
[in]imageSrcSource image
[in]centerCenter for the inverse transformation (i.e. the point around which the ring will be constructed).
[in]startAngleOrientation of the start (the total azimuth will be determined from the input image).
[in]innerRadiusInner radius of the ring (the outer radius will be determined from the input image).
[in]imageDstDestination image into which the unwrap result will be painted.
Exceptions
Anyexception derived from std::exception including CvbException.

Linear interpolation is being used for the transformation.

◆ IsInterleaved() [1/2]

bool IsInterleaved ( size_t  bytesPerPixel,
const ArrayAccess access0,
const ArrayAccess access1 
)
inlinenoexcept

! IsInterleaved(size_t bytesPerPixel, const ArrayAccess &access0, const ArrayAccess &access1, const ACCESSES &... accs) noexcept

IsInterleaved(size_t bytesPerPixel, const ArrayAccess &access0, const ArrayAccess &access1, const ACCESSES &... accs) noexcept

◆ IsInterleaved() [2/2]

bool IsInterleaved ( size_t  bytesPerPixel,
const LinearAccessData access0,
const LinearAccessData access1 
)
inlinenoexcept

!

◆ LinearTransform()

std::unique_ptr< Image > LinearTransform ( const Image image,
Matrix2D  matrix 
)
inline

Creates a linear transformation (matrix transformation).

Parameters
[in]imageSource image.
[in]matrixMatrix to transform the image.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

Linear interpolation is used for the transformation.

◆ MapTo8Bit()

std::unique_ptr< Image > MapTo8Bit ( const Image image,
PlaneNormalization  planeNormalization = PlaneNormalization::Identical 
)
inline

Take an input image and scale the pixel values to fit into the 8 bit value range.

Parameters
[in]imageImage to be mapped.
[in]planeNormalizationPlane normalization mode.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ Max()

Angle Max ( Angle  a,
Angle  b 
)
inlinenoexcept

Returns the bigger of two angles.

Parameters
[in]aFirst angle.
[in]bSecond angle.
Returns
Biggest angle.
Exceptions
Doesnot throw any exception.

◆ Min()

Angle Min ( Angle  a,
Angle  b 
)
inlinenoexcept

Returns the smaller of two angles.

Parameters
[in]aFirst angle.
[in]bSecond angle.
Returns
Smallest angle.
Exceptions
Doesnot throw any exception.

◆ NormalizeMeanVariance()

std::unique_ptr< Image > NormalizeMeanVariance ( const Image image,
double  targetMean,
double  targetVariance 
)
inline

Normalize an input image using mean/variance normalization (the gray values of the image will be stretched modified to generate a histogram as close as possible to the input target mean and variance values).

Parameters
[in]imageImage to be normalized.
[in]targetMeanTarget mean value to achieve.
[in]targetVarianceTarget variance value to achieve.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ NormalizeMinMax()

std::unique_ptr< Image > NormalizeMinMax ( const Image image,
double  targetMin,
double  targetMax 
)
inline

Normalize an input image using min/max normalization (the gray values of the image will be stretched or compressed to fit the input target minimum and maximum values).

Parameters
[in]imageImage to be normalized.
[in]targetMinTarget minimum value to achieve.
[in]targetMaxTarget maximum value to achieve.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ operator*() [1/32]

AffineMatrix2D operator* ( const AffineMatrix2D lhs,
const AffineMatrix2D rhs 
)
inlinenoexcept

Multiply two affine matrices.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side affine matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [2/32]

AffineMatrix2D operator* ( const AffineMatrix2D lhs,
const double &  rhs 
)
inlinenoexcept

Multiply affine matrix with scalar.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [3/32]

Point2D< double > operator* ( const AffineMatrix2D lhs,
const Point2D< double > &  rhs 
)
inlinenoexcept

Multiply affine matrix with 2D point.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [4/32]

AffineMatrix3D operator* ( const AffineMatrix3D lhs,
const AffineMatrix3D rhs 
)
inline

Multiply two transformations.

Parameters
[in]lhsRight hand side transformation.
[in]rhsLeft hand side transformation.
Returns
The computation result.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ operator*() [5/32]

AffineMatrix3D operator* ( const AffineMatrix3D lhs,
const double &  rhs 
)
inlinenoexcept

Multiply transformation with scalar.

Parameters
[in]lhsRight hand side transformation.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [6/32]

Angle operator* ( const Angle lhs,
const double &  rhs 
)
inline

Multiplies an angle with a value.

Parameters
[in]lhsRight hand side angle.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [7/32]

AffineMatrix2D operator* ( const double &  lhs,
const AffineMatrix2D rhs 
)
inlinenoexcept

Multiply scalar with affine matrix .

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side affine matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [8/32]

AffineMatrix3D operator* ( const double &  lhs,
const AffineMatrix3D rhs 
)
inlinenoexcept

Multiply scalar with transformation.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side transformation.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [9/32]

Angle operator* ( const double &  lhs,
const Angle rhs 
)
inline

Multiplies value with an angle.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side angle.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [10/32]

Matrix2D operator* ( const double &  lhs,
const Matrix2D rhs 
)
inline

Multiply scalar with matrix .

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [11/32]

Matrix3D operator* ( const double &  lhs,
const Matrix3D rhs 
)
inline

Multiply scalar with matrix .

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [12/32]

Matrix3DH operator* ( const double &  lhs,
const Matrix3DH rhs 
)
inline

Multiply scalar with matrix .

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [13/32]

Matrix2D operator* ( const Matrix2D lhs,
const double &  rhs 
)
inline

Multiply matrix with scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [14/32]

Matrix2D operator* ( const Matrix2D lhs,
const Matrix2D rhs 
)
inline

Multiply two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [15/32]

Point2D< double > operator* ( const Matrix2D lhs,
const Point2D< double > &  rhs 
)
inline

Multiply matrix with 2D point.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [16/32]

Matrix3D operator* ( const Matrix3D lhs,
const double &  rhs 
)
inline

Multiply matrix with scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [17/32]

Matrix3D operator* ( const Matrix3D lhs,
const Matrix3D rhs 
)
inline

Multiply two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ operator*() [18/32]

Point3D< double > operator* ( const Matrix3D lhs,
const Point3D< double > &  rhs 
)
inline

Multiply matrix with 3D point.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [19/32]

Matrix3DH operator* ( const Matrix3DH lhs,
const double &  rhs 
)
inline

Multiply matrix with scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [20/32]

Point3DH< double > operator* ( const Matrix3DH lhs,
const Point3DH< double > &  rhs 
)
inline

Multiply matrix with 3D point (homogeneous).

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [21/32]

T operator* ( const Point2D< T > &  lhs,
const Point2D< T > &  rhs 
)
inline

Inner product of two point vectors.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [22/32]

Point2D< T > operator* ( const Point2D< T > &  lhs,
const T &  rhs 
)
inline

Multiply point with scalar.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [23/32]

T operator* ( const Point3D< T > &  lhs,
const Point3D< T > &  rhs 
)
inline

Inner product of two point vectors.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [24/32]

Point3D< T > operator* ( const Point3D< T > &  lhs,
const T &  rhs 
)
inline

Multiply point with scalar.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [25/32]

T operator* ( const Point3DC< T > &  lhs,
const Point3DC< T > &  rhs 
)
inline

Inner product of two point vectors.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [26/32]

Point3DC< T > operator* ( const Point3DC< T > &  lhs,
const T &  rhs 
)
inline

Multiply point with scalar.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [27/32]

T operator* ( const Point3DH< T > &  lhs,
const Point3DH< T > &  rhs 
)
inline

Inner product of two point vectors.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [28/32]

Point3DH< T > operator* ( const Point3DH< T > &  lhs,
const T &  rhs 
)
inline

Multiply point with scalar.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [29/32]

Point2D< T > operator* ( const T &  lhs,
const Point2D< T > &  rhs 
)
inline

Multiply scalar with point.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [30/32]

Point3D< T > operator* ( const T &  lhs,
const Point3D< T > &  rhs 
)
inline

Multiply scalar with point.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [31/32]

Point3DC< T > operator* ( const T &  lhs,
const Point3DC< T > &  rhs 
)
inline

Multiply scalar with point.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator*() [32/32]

Point3DH< T > operator* ( const T &  lhs,
const Point3DH< T > &  rhs 
)
inline

Multiply scalar with point.

Parameters
[in]lhsRight hand side value.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [1/7]

AffineMatrix2D operator+ ( const AffineMatrix2D lhs,
const AffineMatrix2D rhs 
)
inlinenoexcept

Add two affine matrices.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side affine matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [2/7]

AffineMatrix3D operator+ ( const AffineMatrix3D lhs,
const AffineMatrix3D rhs 
)
inlinenoexcept

Add two transformations.

Parameters
[in]lhsRight hand side transformation.
[in]rhsLeft hand side transformation.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [3/7]

Angle operator+ ( const Angle lhs,
const Angle rhs 
)
inline

Add two angles.

Parameters
[in]lhsRight hand side angle.
[in]rhsLeft hand side angle.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [4/7]

Matrix2D operator+ ( const Matrix2D lhs,
const Matrix2D rhs 
)
inline

Add two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [5/7]

Matrix3D operator+ ( const Matrix3D lhs,
const Matrix3D rhs 
)
inline

Add two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [6/7]

Matrix3DH operator+ ( const Matrix3DH lhs,
const Matrix3DH rhs 
)
inline

Add two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator+() [7/7]

Point2D< T > operator+ ( const Point2D< T > &  lhs,
const Point2D< T > &  rhs 
)
inline

Add two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [1/10]

AffineMatrix2D operator- ( const AffineMatrix2D lhs,
const AffineMatrix2D rhs 
)
inlinenoexcept

Subtract two affine matrices.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side affine matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [2/10]

AffineMatrix3D operator- ( const AffineMatrix3D lhs,
const AffineMatrix3D rhs 
)
inlinenoexcept

Subtract two transformations.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side affine matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [3/10]

Angle operator- ( const Angle lhs,
const Angle rhs 
)
inline

Subtract two angles.

Parameters
[in]lhsRight hand side angle.
[in]rhsLeft hand side angle.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [4/10]

Matrix2D operator- ( const Matrix2D lhs,
const Matrix2D rhs 
)
inline

Substract two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [5/10]

Matrix3D operator- ( const Matrix3D lhs,
const Matrix3D rhs 
)
inline

Subtract two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [6/10]

Matrix3DH operator- ( const Matrix3DH lhs,
const Matrix3DH rhs 
)
inline

Subtract two matrices.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side matrix.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [7/10]

Point2D< T > operator- ( const Point2D< T > &  lhs,
const Point2D< T > &  rhs 
)
inline

Subtracts two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [8/10]

Point3D< T > operator- ( const Point3D< T > &  lhs,
const Point3D< T > &  rhs 
)
inline

Subtracts two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [9/10]

Point3DC< T > operator- ( const Point3DC< T > &  lhs,
const Point3DC< T > &  rhs 
)
inline

Subtracts two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator-() [10/10]

Point3DH< T > operator- ( const Point3DH< T > &  lhs,
const Point3DH< T > &  rhs 
)
inline

Subtracts two points.

Parameters
[in]lhsRight hand side point.
[in]rhsLeft hand side point.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [1/10]

AffineMatrix2D operator/ ( const AffineMatrix2D lhs,
const double &  rhs 
)
inline

Divide affine matrix by scalar.

Parameters
[in]lhsRight hand side affine matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [2/10]

AffineMatrix3D operator/ ( const AffineMatrix3D lhs,
const double &  rhs 
)
inline

Divide transformation by scalar.

Parameters
[in]lhsRight hand side transformation.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ operator/() [3/10]

Angle operator/ ( const Angle lhs,
const double &  rhs 
)
inline

Divides an angle by a value.

Parameters
[in]lhsRight hand side angle.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [4/10]

Matrix2D operator/ ( const Matrix2D lhs,
const double &  rhs 
)
inline

Divide matrix by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [5/10]

Matrix3D operator/ ( const Matrix3D lhs,
const double &  rhs 
)
inline

Divide matrix by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [6/10]

Matrix3DH operator/ ( const Matrix3DH lhs,
const double &  rhs 
)
inline

Divide matrix by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [7/10]

Point2D< T > operator/ ( const Point2D< T > &  lhs,
const T &  rhs 
)
inline

Divide point by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [8/10]

Point3D< T > operator/ ( const Point3D< T > &  lhs,
const T &  rhs 
)
inline

Divide point by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [9/10]

Point3DC< T > operator/ ( const Point3DC< T > &  lhs,
const T &  rhs 
)
inline

Divide point by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ operator/() [10/10]

Point3DH< T > operator/ ( const Point3DH< T > &  lhs,
const T &  rhs 
)
inline

Divide point by scalar.

Parameters
[in]lhsRight hand side matrix.
[in]rhsLeft hand side value.
Returns
The computation result.
Exceptions
Doesnot throw any exception.

◆ PolarTransform() [1/2]

std::unique_ptr< Image > PolarTransform ( const Image image,
Point2D< double >  center,
double  innerRadius,
double  outerRadius 
)
inline

Create a polar transformation (i.e. unwrap a ring structure from inside source image into a rectangular image).

Parameters
[in]imageSource image.
[in]centerCenter image for the polar transform.
[in]innerRadiusInner radius of the ring.
[in]outerRadiusOuter radius of the ring.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

Linear interpolation is being used for the transformation.

◆ PolarTransform() [2/2]

std::unique_ptr< Image > PolarTransform ( const Image image,
Point2D< double >  center,
double  innerRadius,
double  outerRadius,
Angle  startAngle,
Angle  totalAngle 
)
inline

Create a polar transformation (i.e. unwrap a ring structure from inside source image into a rectangular image).

Parameters
[in]imageSource image.
[in]centerCenter image for the polar transform.
[in]innerRadiusInner radius of the ring.
[in]outerRadiusOuter radius of the ring.
[in]startAngleOrientation of the start angle.
[in]totalAngleThe total angle to cover.
Returns
Pointer to newly created image.
Exceptions
Anyexception derived from std::exception including CvbException.

Linear interpolation is being used for the transformation.

◆ Round() [1/6]

Point2D< int > Round ( const Point2D< T > &  rhs)
inlinenoexcept

Round to an integer point.

Parameters
[in]rhsThe point to round
Returns
A rounded integer point
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Round() [2/6]

Point3D< int > Round ( const Point3D< T > &  rhs)
inlinenoexcept

Round to an integer point.

Parameters
[in]rhsThe point to round
Returns
A rounded integer point
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Round() [3/6]

Rect< int > Round ( const Rect< T > &  rhs)
inlinenoexcept

Round to an integer rectangle.

Parameters
[in]rhsThe rectangle to round.
Returns
A rounded integer rectangle.
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Round() [4/6]

RectLT< int > Round ( const RectLT< T > &  rhs)
inlinenoexcept

Round to an integer rectangle.

Parameters
[in]rhsThe rectangle to round.
Returns
A rounded integer rectangle.
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Round() [5/6]

Size2D< int > Round ( const Size2D< T > &  rhs)
inlinenoexcept

Rounds to an integer size.

Parameters
[in]rhsThe size to round.
Returns
A rounded integer size.
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Round() [6/6]

ValueRange< int > Round ( const ValueRange< T > &  rhs)
inlinenoexcept

Rounds to an integer value range.

Parameters
[in]rhsThe value range to round.
Returns
A rounded value range.
Exceptions
Doesnot throw any exception.
Note
If the round operation is undefined, the result will also be undefined.

◆ Sign()

int Sign ( Angle  angle)
inlinenoexcept

Returns a value indicating the sign of an Angle.

Parameters
[in]angleThe angle.
Returns
-1 if angle is less than zero, 0 if angle is zero, 1 if angle is greater than zero.
Exceptions
Doesnot throw any exception.

◆ Sin()

double Sin ( Angle  angle)
inlinenoexcept

Returns the sine of an angle.

Parameters
[in]angleThe angle.
Returns
The sine.
Exceptions
Doesnot throw any exception.

◆ Sinh()

double Sinh ( Angle  angle)
inlinenoexcept

Returns the hyperbolic sine of an angle.

Parameters
[in]angleThe angle.
Returns
The hyperbolic sine.
Exceptions
Doesnot throw any exception.

◆ Tan()

double Tan ( Angle  angle)
inlinenoexcept

Returns the tangent of an angle.

Parameters
[in]angleThe angle.
Returns
The tangent.
Exceptions
Doesnot throw any exception.

◆ Tanh()

double Tanh ( Angle  angle)
inlinenoexcept

Returns the hyperbolic tangent of an angle.

Parameters
[in]angleThe angle.
Returns
The hyperbolic tangent.
Exceptions
Doesnot throw any exception.

◆ Visit() [1/4]

auto Visit ( VISITOR &&  visitor,
const ImagePlane plane,
const PLANEARGS &...  planes 
)

Creates Cvb::Blocks based on the planes objects' access traits and pixel type, and calls the given visitor with them.

The planes must have the same pixel type. If all planes support Cvb::ArrayAccess, then all blocks forwarded to the visitor are of type Cvb::ArrayPlaneBlock, if all are of Cvb::LinearAccess, all blocks will be of type Cvb::LinearPlaneBlock, otherwise of type Cvb::VpatPlaneBlock.

Template Parameters
VISITORCallable that is called with the typed Cvb::Block.
Parameters
[in]visitorCallable of signature auto(Block<T,ACCESS_TRAIT>, ...).
[in]planesPlanes to create typed Cvb::Blocks for that will be forwarded to the visitor.
Returns
Whatever visitor returns.
Exceptions
std::runtime_errorif no pixel type could be matched.
std::domain_errorif properties of the planes differ.

◆ Visit() [2/4]

auto Visit ( VISITOR &&  visitor,
const Plane plane,
const PLNS &...  planes 
)

Creates a Cvb::Block based on the plane and planes objects' access traits and pixel type and calls the given visitor with it.

Remarks
Currently only point clouds are supported, where LinearAccess is supported. If only a single plane is given, either a ArrayPlaneBlock<T> or a LinearPlaneBlock<T> is given as argument to the visitor.
If more than one plane is given, the visitor must either be callable with a single Block or with exactly as many Blocks as there are plane arguments. In the single argument case, the Block will either be a ArrayPlaneBlock<LinearValue<T, NumPlanes>>, LinearPlaneBlock<LinearValue<T, NumPlanes>> or a ScatterBlock<T, NumPlanes>. In the multiple argument case, the Blocks will all either be ArrayPlaneBlock<T> or LinearPlaneBlock<T> depending on whether all the planes' memory is continuous or not.
If the planes are interleaved in the argument order, a ArrayPlaneBlock<LinearValue<T, NumPlanes>> or LinearPlaneBlock<LinearValue<T, NumPlanes>> is used, providing performance optimizations. Otherwise ScatterBlock<RefValue<T, NumPlanes>, NumPlanes> is used.
Template Parameters
VISITORThe visitor functor.
Parameters
[in]visitorThe visiting functor. May either have one argument or exactly as many arguments as planes are given.
[in]planeThe first plane to visit.
[in]planesMore planes to visit.
Returns
Whatever visitor returns.
Exceptions
std::domain_errorif properties of the planes differ.

◆ Visit() [3/4]

auto Visit ( VISITOR &&  visitor,
const PLANE_T &  plane,
const PLANEARGS &...  planes 
)

Creates a Cvb::Block based on the plane and planes objects' access traits and pixel type and calls the given visitor with it.

Remarks
If more than one plane is given, the visitor must either be callable with a single Block or with exactly as many Blocks as there are plane arguments. In the single argument case, the Block will either be a ArrayPlaneBlock<LinearValue<T, NumPlanes>>, LinearPlaneBlock<LinearValue<T, NumPlanes>> or a ScatterBlock<T, NumPlanes>. In the multiple argument case, the Blocks will all either be ArrayPlaneBlock<T> or LinearPlaneBlock<T> depending on whether all the planes' memory is continuous or not. If PlaneTraits<PLANE_T>::HasVpat is true, VpatPlaneBlock<LinearValue<T, NumPlanes> or VpatPlaneBlock<T> are additionally possible block types.
If the planes are interleaved in the argument order, a ArrayPlaneBlock<LinearValue<T, NumPlanes>>, LinearPlaneBlock<LinearValue<T, NumPlanes>> or VpatPlaneBlock<LinearValue<T, NumPlanes> is used, providing performance benefits. If the planes are not interleaved ScatterBlock<RefValue<T, NumPlanes>, NumPlanes> is used.
The possible element types T are taken from PlaneTraits<PLANE_T>::TypeList.
Template Parameters
VISITORThe visitor functor.
Parameters
[in]visitorThe visiting functor. May either have one argument or exactly as many arguments as planes are given.
[in]planeThe first plane to visit.
[in]planesMore planes to visit.
Returns
Whatever visitor returns.
Exceptions
std::domain_errorif properties of the planes differ.

◆ Visit() [4/4]

auto Visit ( VISITOR &&  visitor,
const PointCloud cloud 
)

Creates a Cvb::Block based on the cloud object's access trait and pixel type and calls the given visitor with it.

Remarks
Currently only point clouds are supported, where LinearAccess is supported. The block will either be a ArrayPlaneBlock<LinearValue<T, 3>>, LinearPlaneBlock<LinearValue<T, 3>> or a ScatterBlock<T, 3>. If the x, y and z planes are interleaved in this order, a ArrayPlaneBlock<LinearValue<T, 3>> or LinearPlaneBlock<LinearValue<T, 3>> is used, providing performance optimizations. Otherwise ScatterBlock<T, 3> is used.
Template Parameters
VISITORCallable that is called with the typed CvbConcepts::Block.
Parameters
[in]visitorCallable of signature auto(Block<T,ACCESS_TRAIT>).
[in]cloudPointCloud to create typed CvbConcepts::Block for.
Returns
Whatever visitor returns.
Exceptions
std::runtime_errorif no pixel type could be matched.
std::domain_errorif properties of the planes differ.

◆ VisitAs() [1/4]

auto VisitAs ( VISITOR &&  visitor,
const ImagePlane plane,
const PLANEARGS &...  planes 
)

Creates Cvb::Blocks based on the planes objects' access traits and PIXEL_TYPE and calls the given visitor with them. When the PIXEL_TYPE is compile-time known, this overload is useful to avoid unnecessary template instantiations.

The planes must have the same pixel type. If all planes support Cvb::ArrayAccess, then all blocks forwarded to the visitor are of type Cvb::ArrayPlaneBlock, if all are of Cvb::LinearAccess, all blocks will be of type Cvb::LinearPlaneBlock, otherwise of type Cvb::VpatPlaneBlock.

Template Parameters
PIXEL_TYPEThe pixel type of the planes.
VISITORCallable that is called with the typed Cvb::Block.
Parameters
[in]visitorCallable of signature auto(Block<PIXEL_TYPE,ACCESS_TRAIT>, ...).
[in]planesPlanes to create typed Cvb::Blocks for that will be forwarded to the visitor.
Returns
Whatever visitor returns.
Exceptions
std::runtime_errorif no pixel type could be matched
std::domain_errorif properties of the planes differ.

◆ VisitAs() [2/4]

auto VisitAs ( VISITOR &&  visitor,
const Plane plane,
const PLNS &...  planes 
)

Creates a Cvb::Block based on the plane and planes objects' access traits and given pixel type T and calls the given visitor with it.

Remarks
Currently only point clouds are supported, where LinearAccess is supported. The visitor must be callable with a single Block<PointT, AccessTrait> as argument.
If the planes are interleaved in the argument order, a ArrayPlaneBlock<PointT> or LinearPlaneBlock<PointT> is used, providing performance optimizations. Otherwise ScatterBlock<PointT, N> is used.
If T is an arithmetic type, the behavior is equivalent to Visit, except the component type is not dispatched and instead T is used. In this case, PointT will be LinearValue<T, NumPlanes> or RefValue<T, NumPlanes>. Otherwise T will be used as PointT directly.
Template Parameters
VISITORThe visitor functor.
Parameters
[in]visitorThe visiting functor. May either have one argument or exactly as many arguments as planes are given.
[in]planeThe first plane to visit.
[in]planesMore planes to visit.
Returns
Whatever visitor returns.
Exceptions
std::domain_errorif properties of the planes differ.

◆ VisitAs() [3/4]

auto VisitAs ( VISITOR &&  visitor,
const PLANE_T &  plane,
const PLANEARGS &...  planes 
)

Creates Cvb::Blocks based on the planes objects' access traits and T and calls the given visitor with them. When the T is compile-time known, this variant is useful to avoid unnecessary template instantiations.

Remarks
If the planes are interleaved in the argument order, a ArrayPlaneBlock<PointT> or LinearPlaneBlock<PointT> is used, providing performance benefits. If PlaneTraits<PLANE_T>::HasVpat is true and any plane does not provide Cvb::LinearAccess, Cvb::VpatPlaneBlock is used. If the planes are not interleaved ScatterBlock<PointT, N> is used.
If T is an arithmetic type, the behavior is equivalent to Visit, except the component type is not dispatched and instead T is used. In this case, PointT will be LinearValue<T, NumPlanes> or RefValue<T, NumPlanes>. Otherwise T will be used as PointT directly.
Template Parameters
TThe element type of the planes.
VISITORThe visitor functor.
Parameters
[in]visitorThe visiting functor. May either have one argument or exactly as many arguments as planes are given.
[in]planeThe first plane to visit.
[in]planesMore planes to visit.
Returns
Whatever visitor returns.
Exceptions
std::runtime_errorif no pixel type could be matched
std::domain_errorif properties of the planes differ.

◆ VisitAs() [4/4]

auto VisitAs ( VISITOR &&  visitor,
const PointCloud cloud 
)

Creates a Cvb::Block based on the cloud object's access trait and given pixel type T and calls the given visitor with it.

Remarks
Currently only point clouds are supported, where LinearAccess is supported. The block will either be a ArrrayPlaneBlock<PointT>, LinearPlaneBlock<PointT> or a ScatterBlock<PointT, 3>. If the x, y and z planes are interleaved in this order, a ArrayPlaneBlock<PointT> or LinearPlaneBlock<PointT> is used, providing superior performance. Otherwise ScatterBlock<PointT, 3> is used.
If T is an arithmetic type, the behavior is equivalent to Visit, except the component type is not dispatched and instead T is used. In this case, PointT will be LinearValue<T, 3> or RefValue<T, 3>. Otherwise T will be used as PointT directly.
Template Parameters
TType of the pixel, that can be accessed through the Block.
VISITORCallable that is called with the typed CvbConcepts::Block.
Parameters
[in]visitorCallable of signature auto(Block<T,ACCESS_TRAIT>).
[in]cloudPointCloud to create typed CvbConcepts::Block for.
Returns
Whatever visitor returns.
Exceptions
std::runtime_errorif no pixel type could be matched.
std::domain_errorif properties of the planes differ.