Libargus API
Libargus Camera API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions
Argus::Ext::IBayerSharpnessMap Class Reference

Interface to Bayer sharpness map metadata. More...

#include <BayerSharpnessMap.h>

Inheritance diagram for Argus::Ext::IBayerSharpnessMap:
Argus::Interface Argus::NonCopyable

List of all members.

Public Member Functions

virtual Point2D< uint32_t > getBinStart () const =0
 Returns the starting location of the first bin, in pixels, where the location is relative to the top-left corner of the image.
virtual Size2D< uint32_t > getBinSize () const =0
 Returns the size of each bin, in pixels.
virtual Size2D< uint32_t > getBinCount () const =0
 Returns the number of bins in both the horizontal (width) and vertical (height) directions.
virtual Size2D< uint32_t > getBinInterval () const =0
 Returns the bin intervals for both the x and y axis.
virtual Status getSharpnessValues (Array2D< BayerTuple< float > > *values) const =0
 Returns the sharpness values for all bins and color channels.

Static Public Member Functions

static const InterfaceIDid ()

Protected Member Functions

 ~IBayerSharpnessMap ()
- Protected Member Functions inherited from Argus::Interface
 Interface ()
 ~Interface ()

Detailed Description

Interface to Bayer sharpness map metadata.

The Bayer sharpness map exposes image sharpness metrics that can be used in order to help determine the correct position of the lens to achieve the best focus. Each metric is a normalized floating-point value representing the estimated sharpness for a particular color channel and pixel region, called bins, where 0.0 and 1.0 map to the minimum and maximum possible sharpness values, respectively. Sharpness values generally correlate with image focus in that a low sharpness implies a poorly focused (blurry) region while a high sharpness implies a well focused (sharp) region.

The size and layout of the bins used to calculate the sharpness metrics are determined by the libargus implementation, and are illustrated in the following diagram. The bin size and interval are constant across the image, and are positioned such that the generated metrics cover the majority of the full image. All dimensions are given in pixels.

start.x interval.width
_______ _________________
| | | |
_ ________________________________________________________
| | |
start.y | | |
|_ | _____ _____ _____ | _
| | | | | | | | |
| | 0,0 | | 1,0 | | 2,0 | | |
| |_____| |_____| |_____| | |
| | | interval.height
| | |
| | |
| _____ _____ _____ | _|
| | | | | | | |
| | 0,1 | | 1,1 | | 2,1 | |
| |_____| |_____| |_____| |
| |
| |
| |
| _____ _____ _____ | _
| | | | | | | | |
| | 0,2 | | 1,2 | | 2,2 | | | size.height
| |_____| |_____| |_____| | _|
| |
| |
|________________________________________________________|
|_____|
size.width

Definition at line 141 of file BayerSharpnessMap.h.


Constructor & Destructor Documentation

Argus::Ext::IBayerSharpnessMap::~IBayerSharpnessMap ( )
inlineprotected

Definition at line 180 of file BayerSharpnessMap.h.


Member Function Documentation

virtual Size2D<uint32_t> Argus::Ext::IBayerSharpnessMap::getBinCount ( ) const
pure virtual

Returns the number of bins in both the horizontal (width) and vertical (height) directions.

virtual Size2D<uint32_t> Argus::Ext::IBayerSharpnessMap::getBinInterval ( ) const
pure virtual

Returns the bin intervals for both the x and y axis.

These intervals are defined as the number of pixels between the first pixel of a bin and that of the immediate next bin.

virtual Size2D<uint32_t> Argus::Ext::IBayerSharpnessMap::getBinSize ( ) const
pure virtual

Returns the size of each bin, in pixels.

virtual Point2D<uint32_t> Argus::Ext::IBayerSharpnessMap::getBinStart ( ) const
pure virtual

Returns the starting location of the first bin, in pixels, where the location is relative to the top-left corner of the image.

virtual Status Argus::Ext::IBayerSharpnessMap::getSharpnessValues ( Array2D< BayerTuple< float > > *  values) const
pure virtual

Returns the sharpness values for all bins and color channels.

These values are normalized such that 0.0 and 1.0 map to the minimum and maximum possible sharpness values, respectively.

Parameters:
[out]valuesThe output array to store the sharpness values for all bins. This 2-dimensional array will be sized as returned by
See also:
getBinCount(), where each array element is a floating point BayerTuple containing the R, G_EVEN, G_ODD, and B sharpness values for that bin.
static const InterfaceID& Argus::Ext::IBayerSharpnessMap::id ( )
inlinestatic

Definition at line 144 of file BayerSharpnessMap.h.


The documentation for this class was generated from the following file: