CVB++ 14.0
ImagePlane Class Referencefinal

Image plane information container. More...

#include <cvb/image_plane.hpp>

Inherits IArray.

Public Member Functions

 ImagePlane (ImagePlane &&other) noexcept=default
 Move constructor. More...
 
 ImagePlane (const class Plane &plane)
 Implicitly convert a plane to an image plane. More...
 
void * Handle () const noexcept
 Classic API image handle. More...
 
bool TryContiguousAccess (std::uint8_t *&basePtr) const noexcept
 Attempt a contiguous access on the plane's pixels. More...
 
std::uint8_tContiguousAccess () const
 Attempt a contiguous access on the plane's pixels. More...
 
bool TryLinearAccess (LinearAccessData &linearAccessData) const noexcept
 Attempt a linear access on the plane's pixels. More...
 
LinearAccessData LinearAccess () const
 Attempt a linear access on the plane's pixels. More...
 
class DataType DataType () const noexcept override
 Data type descriptor for this array. More...
 
int Rank () const noexcept
 Gets the number of dimensions for this array. More...
 
const ImageParent () const noexcept
 Image to which this plane descriptor refers to. More...
 
class Vpat Vpat () const
 Accesses the virtual pixel access table. More...
 
std::unique_ptr< ImageMap () const
 Create a map from a single image plane that shares its memory with the original plane. More...
 
double GetPixel (Point2D< int > position) const
 Gets the pixel value at the given position. More...
 
int Plane () const noexcept
 Plane index in the image, to which this plane refers to.
 
template<class Type >
ContiguousIterator< Type > BeginContiguous ()
 Get iterator access to the plane. More...
 
template<class Type >
ContiguousIterator< Type > EndContiguous ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousIterator< Type > > RBeginContiguous ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousIterator< Type > > REndContiguous ()
 Get iterator access to the plane. More...
 
template<class Type >
ContiguousConstIterator< Type > CBeginContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
ContiguousConstIterator< Type > BeginContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
ContiguousConstIterator< Type > CEndContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
ContiguousConstIterator< Type > EndContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousConstIterator< Type > > CRBeginContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousConstIterator< Type > > RBeginContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousConstIterator< Type > > CREndContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< ContiguousConstIterator< Type > > REndContiguous () const
 Get iterator access to the plane. More...
 
template<class Type >
LinearIterator< Type > BeginLinear ()
 Get iterator access to the plane. More...
 
template<class Type >
LinearIterator< Type > EndLinear ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearIterator< Type > > RBeginLinear ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearIterator< Type > > REndLinear ()
 Get iterator access to the plane. More...
 
template<class Type >
LinearConstIterator< Type > CBeginLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
LinearConstIterator< Type > BeginLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
LinearConstIterator< Type > CEndLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
LinearConstIterator< Type > EndLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearConstIterator< Type > > CRBeginLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearConstIterator< Type > > RBeginLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearConstIterator< Type > > CREndLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< LinearConstIterator< Type > > REndLinear () const
 Get iterator access to the plane. More...
 
template<class Type >
VpatIterator< Type > BeginVpat ()
 Get iterator access to the plane. More...
 
template<class Type >
VpatIterator< Type > EndVpat ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatIterator< Type > > RBeginVpat ()
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatIterator< Type > > REndVpat ()
 Get iterator access to the plane. More...
 
template<class Type >
VpatConstIterator< Type > CBeginVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
VpatConstIterator< Type > BeginVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
VpatConstIterator< Type > CEndVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
VpatConstIterator< Type > EndVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatConstIterator< Type > > CRBeginVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatConstIterator< Type > > RBeginVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatConstIterator< Type > > CREndVpat () const
 Get iterator access to the plane. More...
 
template<class Type >
std::reverse_iterator< VpatConstIterator< Type > > REndVpat () const
 Get iterator access to the plane. More...
 
virtual void * Handle () const noexcept=0
 Classic API image handle. More...
 
virtual class DataType DataType () const noexcept=0
 Data type descriptor for this array. More...
 
virtual int Rank () const noexcept=0
 Gets the number of dimensions for this array. More...
 

Related Functions

(Note that these are not member functions.)

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...
 
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...
 

Detailed Description

Image plane information container.

Examples
Minos/QmlMinos.

Constructor & Destructor Documentation

◆ ImagePlane() [1/2]

ImagePlane ( ImagePlane &&  other)
defaultnoexcept

Move constructor.

Parameters
[in]otherOther plane.
Exceptions
Doesnot throw any exception.

◆ ImagePlane() [2/2]

CVB_BEGIN_INLINE_NS ImagePlane ( const class Plane plane)
inline

Implicitly convert a plane to an image plane.

Parameters
[in]planePlane to convert to image plane.
Exceptions
Anyexception derived from std::exception including CvbException.

Only two dimensional plane can be converted to image planes. Otherwise this conversion will throw.

Member Function Documentation

◆ BeginContiguous() [1/2]

ContiguousIterator< Type > BeginContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like begin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ BeginContiguous() [2/2]

ContiguousConstIterator< Type > BeginContiguous ( ) const
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like begin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ BeginLinear() [1/2]

LinearIterator< Type > BeginLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like begin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ BeginLinear() [2/2]

LinearConstIterator< Type > BeginLinear ( ) const
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like begin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ BeginVpat() [1/2]

VpatIterator< Type > BeginVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like begin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ BeginVpat() [2/2]

VpatConstIterator< Type > BeginVpat ( ) const
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like begin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CBeginContiguous()

ContiguousConstIterator< Type > CBeginContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like cbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CBeginLinear()

LinearConstIterator< Type > CBeginLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like cbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CBeginVpat()

VpatConstIterator< Type > CBeginVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like cbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CEndContiguous()

ContiguousConstIterator< Type > CEndContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like cend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CEndLinear()

LinearConstIterator< Type > CEndLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like cend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CEndVpat()

VpatConstIterator< Type > CEndVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like cend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ ContiguousAccess()

std::uint8_t * ContiguousAccess ( ) const
inline

Attempt a contiguous access on the plane's pixels.

Returns
Base pointer
Exceptions
Anyexception derived from std::exception including CvbException.

This method does the same as TryContiguousAccess(), but will throw if contiguous access is not possible.

◆ CRBeginContiguous()

std::reverse_iterator< ContiguousConstIterator< Type > > CRBeginContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like crbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CRBeginLinear()

std::reverse_iterator< LinearConstIterator< Type > > CRBeginLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like crbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CRBeginVpat()

std::reverse_iterator< VpatConstIterator< Type > > CRBeginVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like crbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CREndContiguous()

std::reverse_iterator< ContiguousConstIterator< Type > > CREndContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like crend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CREndLinear()

std::reverse_iterator< LinearConstIterator< Type > > CREndLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like crend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ CREndVpat()

std::reverse_iterator< VpatConstIterator< Type > > CREndVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like crend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ DataType()

DataType DataType ( ) const
inlineoverridevirtualnoexcept

Data type descriptor for this array.

Returns
The data type descriptor.
Exceptions
Doesnot throw any exception.

Implements IArray.

◆ EndContiguous() [1/2]

ContiguousIterator< Type > EndContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like end().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ EndContiguous() [2/2]

ContiguousConstIterator< Type > EndContiguous ( ) const
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like end() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ EndLinear() [1/2]

LinearIterator< Type > EndLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like end().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ EndLinear() [2/2]

LinearConstIterator< Type > EndLinear ( ) const
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like end() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ EndVpat() [1/2]

VpatIterator< Type > EndVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like end().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ EndVpat() [2/2]

VpatConstIterator< Type > EndVpat ( ) const
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like end() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ GetPixel()

double GetPixel ( Point2D< int >  position) const
inline

Gets the pixel value at the given position.

Parameters
[in]positionPixel position.
Returns
The pixel value.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ Handle()

void * Handle ( ) const
inlinevirtualnoexcept

Classic API image handle.

Returns
Classic API handle.
Exceptions
Doesnot throw any exception.

It is normally not necessary to work with this handle.

Implements IArray.

◆ LinearAccess()

LinearAccessData LinearAccess ( ) const
inline

Attempt a linear access on the plane's pixels.

Returns
Linear access data
Exceptions
Anyexception derived from std::exception including CvbException.

This method does the same as TryLinearAccess(), but will throw if linear access is not possible.

◆ Map()

std::unique_ptr< Image > Map ( ) const
inline

Create a map from a single image plane that shares its memory with the original plane.

Returns
The mapped image.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ Parent()

const Image & Parent ( ) const
inlinenoexcept

Image to which this plane descriptor refers to.

Returns
The parent image.
Exceptions
Doesnot throw any exception.

◆ Rank()

int Rank ( ) const
inlinevirtualnoexcept

Gets the number of dimensions for this array.

Returns
The rank
Exceptions
Doesnot throw any exception.

Implements IArray.

◆ RBeginContiguous() [1/2]

std::reverse_iterator< ContiguousIterator< Type > > RBeginContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like rbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ RBeginContiguous() [2/2]

std::reverse_iterator< ContiguousConstIterator< Type > > RBeginContiguous ( ) const
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like rbegin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ RBeginLinear() [1/2]

std::reverse_iterator< LinearIterator< Type > > RBeginLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like rbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ RBeginLinear() [2/2]

std::reverse_iterator< LinearConstIterator< Type > > RBeginLinear ( ) const
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like rbegin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ RBeginVpat() [1/2]

std::reverse_iterator< VpatIterator< Type > > RBeginVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like rbegin().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ RBeginVpat() [2/2]

std::reverse_iterator< VpatConstIterator< Type > > RBeginVpat ( ) const
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like rbegin() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndContiguous() [1/2]

std::reverse_iterator< ContiguousIterator< Type > > REndContiguous
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like rend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndContiguous() [2/2]

std::reverse_iterator< ContiguousConstIterator< Type > > REndContiguous ( ) const
inline

Get iterator access to the plane.

The memory must be contiguous.

Returns
A standard compliant iterator. Use this like rend() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndLinear() [1/2]

std::reverse_iterator< LinearIterator< Type > > REndLinear
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like rend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndLinear() [2/2]

std::reverse_iterator< LinearConstIterator< Type > > REndLinear ( ) const
inline

Get iterator access to the plane.

The plane must allow linear access.

Returns
A standard compliant iterator. Use this like rend() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndVpat() [1/2]

std::reverse_iterator< VpatIterator< Type > > REndVpat
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like rend().
Exceptions
Anyexception derived from std::exception including CvbException.

◆ REndVpat() [2/2]

std::reverse_iterator< VpatConstIterator< Type > > REndVpat ( ) const
inline

Get iterator access to the plane.

Use only if needed, as it is the lowest access.

Returns
A standard compliant iterator. Use this like rend() const.
Exceptions
Anyexception derived from std::exception including CvbException.

◆ TryContiguousAccess()

bool TryContiguousAccess ( std::uint8_t *&  basePtr) const
inlinenoexcept

Attempt a contiguous access on the plane's pixels.

Parameters
[in]basePtrPointer to the first pixel.
Returns
True if contiguous access is possible, false otherwise.
Exceptions
Doesnot throw any exception.

This function will try to get the linear increments in x and y. Then it will analyze the increments and if the image plane's memory is contiguous it will return the base pointer.

◆ TryLinearAccess()

bool TryLinearAccess ( LinearAccessData linearAccessData) const
inlinenoexcept

Attempt a linear access on the plane's pixels.

Parameters
[in]linearAccessDataData structure receiving the values for accessing the pixels.
Returns
True if linear access is possible, false otherwise.
Exceptions
Doesnot throw any exception.

This function scans the image's VPAT for the possibility to access the individual pixels with linear increments in x and y direction. If either of the VPATs are jumbled, it will return false, otherwise the values in LinearAccessData can be used to calculate the address of each pixel.

◆ Vpat()

class Vpat Vpat ( ) const
inline

Accesses the virtual pixel access table.

Returns
The virtual pixel access table.
Exceptions
Anyexception derived from std::exception including CvbException.

Normally this property only needs to be accessed if you want to access the underlying CVB image on the pixel level. Note that VPAT access is one of the slower access modes. If possible, linear access is preferred.

Friends And Related Function Documentation

◆ FindLocalMaxima() [1/4]

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

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 
)
related

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 
)
related

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 
)
related

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 
)
related

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 
)
related

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.

◆ Visit()

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

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.

◆ VisitAs()

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

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.