Ocean
Ocean Computer Vision (CV) Library

The Ocean CV Library provides basic Computer Vision functionalities. More...

Collaboration diagram for Ocean Computer Vision (CV) Library:

Modules

 Ocean CV Advanced Library
 The Ocean CV Advanced Library provides several different computer vision feature detection functionalities.
 
 Ocean CV Depth Library
 The Ocean CV Depth Library provides functionalities for depth estimation, stereo rectification etc.
 
 Ocean CV Detector Library
 The Ocean CV Dectector Library provides several different computer vision feature detection functionalities.
 
 Ocean CV Fonts Library
 The Ocean CV Fonts Library provides font functionalities like drawing/rendering text.
 
 Ocean CV Segmentation Library
 The Ocean CV Segmentation Library provides all computer vision segmentation, contour and masking functionalities.
 
 Ocean CV Synthesis Library
 The Ocean CV Synthesis Library provides all computer vision synthesis functionalities.
 

Data Structures

class  Ocean::CV::Bresenham
 This class implements bresenham line algorithms. More...
 
class  Ocean::CV::Canvas
 This class implements canvas functions. More...
 
class  Ocean::CV::CVUtilities
 This class implements Computer Vision utility functions. More...
 
class  Ocean::CV::EigenUtilities
 This class provides several helper classes allowing to convert between Ocean data structures and Eigen data structures. More...
 
class  Ocean::CV::FrameBlender
 This class implements a frame blender using an alpha channel to blend frames. More...
 
class  Ocean::CV::FrameChannels
 This class implements frame channel conversion, transformation and extraction functions. More...
 
class  Ocean::CV::FrameConverter
 This is the base class for all frame converter classes. More...
 
class  Ocean::CV::FrameConverterABGR32
 This class implements functions to convert frames with ABGR 32 bit pixel format. More...
 
class  Ocean::CV::FrameConverterARGB32
 This class implements functions to convert frames with ARGB 32 bit pixel format. More...
 
class  Ocean::CV::FrameConverterB_G_R24
 This class provides functions to convert frames with B_G_R24 pixel format. More...
 
class  Ocean::CV::FrameConverterBGR24
 This class provides functions to convert frames with BGR pixel format. More...
 
class  Ocean::CV::FrameConverterBGR32
 This class provides functions to convert or to change frames with RGB pixel format. More...
 
class  Ocean::CV::FrameConverterBGR565
 This class provides functions to convert or to change frames with BGR 565 pixel format. More...
 
class  Ocean::CV::FrameConverterBGRA32
 This class provides functions to convert frames with BGRA pixel format. More...
 
class  Ocean::CV::FrameConverterColorMap
 This class provides functions to convert frames based on a color map. More...
 
class  Ocean::CV::FrameConverterR_G_B24
 This class provides functions to convert frames with R_G_B24 pixel format. More...
 
class  Ocean::CV::FrameConverterRGB24
 This class provides functions to convert or to change frames with RGB pixel format. More...
 
class  Ocean::CV::FrameConverterRGB32
 This class provides functions to convert or to change frames with RGB pixel format. More...
 
class  Ocean::CV::FrameConverterRGB565
 This class provides functions to convert or to change frames with RGB 565 pixel format. More...
 
class  Ocean::CV::FrameConverterRGBA32
 This class provides functions to convert frames with RGBA32 pixel format. More...
 
class  Ocean::CV::FrameConverterRGBA64
 This class provides functions to convert frames with RGBA64 pixel format. More...
 
class  Ocean::CV::FrameConverterRGGB10_Packed
 This class provides functions to convert frames with RGGB10_PACKED pixel format. More...
 
class  Ocean::CV::FrameConverterThreshold
 This class implements frame converters dividing a frame by application of a threshold. More...
 
class  Ocean::CV::FrameConverterUYVY16
 This class provides functions to convert frames with UYVY16 pixel format. More...
 
class  Ocean::CV::FrameConverterY10_Packed
 This class provides functions to convert frames with Y10_PACKED pixel format. More...
 
class  Ocean::CV::FrameConverterY16
 This class provides functions to convert frames with Y16 pixel format. More...
 
class  Ocean::CV::FrameConverterY32
 This class provides functions to convert frames with Y32 pixel format. More...
 
class  Ocean::CV::FrameConverterY8
 This class provides functions to convert frames with Y8 pixel format. More...
 
class  Ocean::CV::FrameConverterY_U_V12
 This class provides functions to convert frames with Y_U_V12 pixel format. More...
 
class  Ocean::CV::FrameConverterY_U_V24
 This class provides functions to convert frames with Y_U_V24 pixel format. More...
 
class  Ocean::CV::FrameConverterY_UV12
 This class provides functions to convert frames with Y_UV12 pixel format. More...
 
class  Ocean::CV::FrameConverterY_V_U12
 This class provides functions to convert frames with Y_V_U12 pixel format. More...
 
class  Ocean::CV::FrameConverterY_VU12
 This class provides functions to convert frames with Y_VU12 pixel format. More...
 
class  Ocean::CV::FrameConverterYA16
 This class provides functions to convert frames with YA16 pixel format. More...
 
class  Ocean::CV::FrameConverterYUV24
 This class provides functions to convert frames with YUV24 pixel format to other pixel formats. More...
 
class  Ocean::CV::FrameConverterYUVA32
 This class provides functions to convert frames with YUVA32 pixel format to other pixel formats. More...
 
class  Ocean::CV::FrameConverterYUYV16
 This class provides functions to convert frames with YUYV16 pixel format. More...
 
class  Ocean::CV::FrameConverterYVU24
 This class provides functions to convert frames with YVU24 pixel format to other pixel formats. More...
 
class  Ocean::CV::FrameEnlarger
 This class implements functions to enlarge/up-sample frames. More...
 
class  Ocean::CV::FrameFilter
 This class implements the base class for all filter. More...
 
class  Ocean::CV::FrameFilterCanny
 This class implements a canny edge filter based on Sobel or Scharr filter operators and their responses respectively. More...
 
class  Ocean::CV::FrameFilterDilation
 This class implements a frame dilation filter. More...
 
class  Ocean::CV::FrameFilterErosion
 This class implements an erosion filter. More...
 
class  Ocean::CV::FrameFilterGaussian
 This class implements Gaussian image blur filters. More...
 
class  Ocean::CV::FrameFilterGradient
 This class implements a gradient frame filter. More...
 
class  Ocean::CV::FrameFilterGradientBase
 This class implements a gradient frame filter not explicitly using SIMD instructions. More...
 
class  Ocean::CV::FrameFilterLaplace
 This class implements Laplace frame filter. More...
 
class  Ocean::CV::FrameFilterMax
 This class implements filters based on the max function. More...
 
class  Ocean::CV::FrameFilterMean
 This class implements a mean frame filter. More...
 
class  Ocean::CV::FrameFilterMedian
 This class implements a median filter. More...
 
class  Ocean::CV::FrameFilterMin
 This class implements filters based on the min function. More...
 
class  Ocean::CV::FrameFilterMorphology
 This class implements the base class for all morphology frame filter. More...
 
class  Ocean::CV::FrameFilterPatch
 This class implements a patch frame filter. More...
 
class  Ocean::CV::FrameFilterPrewitt
 This class implements a Prewitt frame filter. More...
 
class  Ocean::CV::FrameFilterScharr
 This class implements a Scharr filter. More...
 
class  Ocean::CV::FrameFilterScharrMagnitude
 This class implements a scharr filter based on (or respecting) the magnitude of the response. More...
 
class  Ocean::CV::FrameFilterSeparable
 This class implements separable filter. More...
 
class  Ocean::CV::FrameFilterSobel
 This class implements a Sobel filter. More...
 
class  Ocean::CV::FrameFilterSobelMagnitude
 This class implements a Sobel filter based on (or respecting) the magnitude of the response. More...
 
class  Ocean::CV::FrameFilterSorted
 This class implements the base class for all filters relying on sorted filter values. More...
 
class  Ocean::CV::FrameFilterTemplate< TFactor, tFactor00, tFactor10, tFactor20, tFactor01, tFactor11, tFactor21, tFactor02, tFactor12, tFactor22 >
 This class implements a 3x3 filter with arbitrary filter pattern. More...
 
class  Ocean::CV::FrameFilterFactorProvider< tDirection >
 This class implements a helper class providing template filter factors. More...
 
class  Ocean::CV::FrameInterpolator
 This class implements functions interpolating frames and image content. More...
 
class  Ocean::CV::FrameInterpolatorBicubic
 This class implements a bicubic frame interpolator. More...
 
class  Ocean::CV::FrameInterpolatorBilinear
 This class implements bilinear frame interpolator functions. More...
 
class  Ocean::CV::FrameInterpolatorBilinearAlpha< tAlphaAtFront, tTransparentIs0xFF >
 This class implements bilinear frame interpolator functions for frames holding an alpha channel. More...
 
class  Ocean::CV::FrameInterpolatorNearestPixel
 This class implements a nearest pixel frame interpolator. More...
 
class  Ocean::CV::FrameInterpolatorTrilinear
 This class implements tri-linear frame interpolator functions. More...
 
class  Ocean::CV::FrameInverter
 This class implements a frame inverter inverting the internal frame data. More...
 
class  Ocean::CV::FrameMean
 This class implements functions allowing to determine e.g., the mean pixel value of a frame of a mean frame based on several frames. More...
 
class  Ocean::CV::FrameMinMax
 This class implements functions allowing to determine minimum and maximum values within frames. More...
 
class  Ocean::CV::FrameNorm
 This class implements functions allowing to determine norms of images e.g, a L2 norm. More...
 
class  Ocean::CV::FrameNormalizer
 This class implements functions normalizing frames. More...
 
class  Ocean::CV::FrameOperations
 Class for commonly used (arithmetic) operators on and between frames. More...
 
class  Ocean::CV::FrameProviderInterface
 This class defines an abstract interface allowing to request frames from any kind of frame provider. More...
 
class  Ocean::CV::FramePyramid
 This class implements a frame pyramid. More...
 
class  Ocean::CV::FrameShrinker
 This class implements function to downsize a frame. More...
 
class  Ocean::CV::FrameShrinkerAlpha
 This class implements functions downsizing frames that hold alpha channels. More...
 
class  Ocean::CV::FrameTransposer
 This class implements a frame transposer. More...
 
class  Ocean::CV::FrameVariance
 This class implements functions to determine the frame variance. More...
 
class  Ocean::CV::FrequencyAnalysis
 This class provides frame frequency analysis functions. More...
 
class  Ocean::CV::Histogram
 This class implements an image histogram. More...
 
class  Ocean::CV::ContrastLimitedAdaptiveHistogram
 Implementation of Contrast-Limited Adaptive Histogram Equalization (CLAHE). More...
 
class  Ocean::CV::IntegralImage
 This class provides functions to create an integral image from a gray scale image. More...
 
class  Ocean::CV::MaskAnalyzer
 This class implements basic maks analyzing functions. More...
 
class  Ocean::CV::Motion< TMetric >
 This class implements patch-based motion techniques. More...
 
class  Ocean::CV::NEON
 This class implements computer vision functions using NEON extensions. More...
 
class  Ocean::CV::NonMaximumSuppression< T >
 This class implements the possibility to find local maximum in a 2D array by applying a non-maximum-suppression search. More...
 
class  Ocean::CV::OpenCVUtilities
 This class implements utility functions for the migration from OpenCV to Ocean. More...
 
class  Ocean::CV::PixelBoundingBoxT< T >
 This class implements a 2D bounding box with pixel precision. More...
 
class  Ocean::CV::PixelPositionT< T >
 This class implements a 2D pixel position with pixel precision. More...
 
class  Ocean::CV::SSE
 This class implements computer vision functions using SSE extensions. More...
 
class  Ocean::CV::SubRegion
 This class implement a sub-region either defined by 2D triangles or defined by a binary mask. More...
 
class  Ocean::CV::SumAbsoluteDifferences
 This class implements functions calculation the sum of absolute differences. More...
 
class  Ocean::CV::SumAbsoluteDifferencesBase
 This class implements several sum of absolute differences functions. More...
 
class  Ocean::CV::SumAbsoluteDifferencesNEON
 This class implements functions calculation the sum of absolute differences with NEON instructions. More...
 
class  Ocean::CV::SumAbsoluteDifferencesSSE
 This class implements functions calculation the sum of absolute differences. More...
 
class  Ocean::CV::SumSquareDifferences
 This class implements functions calculating the sum of square differences. More...
 
class  Ocean::CV::SumSquareDifferencesBase
 This class implements several sum square differences functions based e.g., on template parameters. More...
 
class  Ocean::CV::SumSquareDifferencesNEON
 This class implements function to calculate sum square differences using NEON instructions. More...
 
class  Ocean::CV::SumSquareDifferencesSSE
 This class implements function to calculate sum square differences using SSE instructions. More...
 
class  Ocean::CV::ZeroMeanSumSquareDifferences
 This class implements functions calculating the zero-mean sum of square differences. More...
 
class  Ocean::CV::ZeroMeanSumSquareDifferencesBase
 This class implements several zero-mean sum square differences functions based e.g., on template parameters. More...
 
class  Ocean::CV::ZeroMeanSumSquareDifferencesNEON
 This class implements function to calculate zeao-mean sum square differences using NEON instructions. More...
 
class  Ocean::CV::ZeroMeanSumSquareDifferencesSSE
 This class implements function to calculate zeao-mean sum square differences using SSE instructions. More...
 

Typedefs

typedef std::vector< PixelDirectionOcean::CV::PixelDirections
 Definition of a vector holding pixel directions. More...
 
typedef std::vector< unsigned int > Ocean::CV::Detector::FeatureIndices
 Definition of a vector holding feature indices. More...
 
typedef ObjectRef< FrameProviderInterfaceOcean::CV::FrameProviderInterfaceRef
 Definition of an object reference holding a frame provider interface. More...
 
typedef Motion< SumAbsoluteDifferencesOcean::CV::MotionSAD
 Definition of a Motion class that applies sum absolute difference calculations as metric. More...
 
typedef Motion< SumSquareDifferencesOcean::CV::MotionSSD
 Definition of a Motion class that applies sum square difference calculations as metric. More...
 
typedef Motion< ZeroMeanSumSquareDifferencesOcean::CV::MotionZeroMeanSSD
 Definition of a Motion class that applies zero-mean sum square difference calculations as metric. More...
 
typedef PixelBoundingBoxT< unsigned int > Ocean::CV::PixelBoundingBox
 Definition of the default PixelBoundingBox object with data type allowing only positive coordinate values. More...
 
typedef PixelBoundingBoxT< int > Ocean::CV::PixelBoundingBoxI
 Definition of a PixelBoundingBox object with data type allowing positive and negative coordinate values. More...
 
typedef std::vector< PixelBoundingBoxOcean::CV::PixelBoundingBoxes
 Definition of a vector holding bounding box objects with only positive coordinate values. More...
 
typedef std::vector< PixelBoundingBoxIOcean::CV::PixelBoundingBoxesI
 Definition of a vector holding bounding box objects with positive and negative coordinate values. More...
 
typedef PixelPositionT< unsigned int > Ocean::CV::PixelPosition
 Definition of the default PixelPosition object with a data type allowing only positive coordinate values. More...
 
typedef PixelPositionT< int > Ocean::CV::PixelPositionI
 Definition of a PixelPosition object with a data type allowing positive and negative coordinate values. More...
 
typedef std::vector< PixelPositionOcean::CV::PixelPositions
 Definition of a vector holding pixel positions (with positive coordinate values). More...
 
typedef std::vector< PixelPositionIOcean::CV::PixelPositionsI
 Definition of a vector holding pixel positions (with positive and negative coordinate values). More...
 

Enumerations

enum  Ocean::CV::PixelDirection : int32_t {
  Ocean::CV::PD_INVALID = -1 , Ocean::CV::PD_NORTH = 0 , Ocean::CV::PD_NORTH_WEST = 45 , Ocean::CV::PD_WEST = 90 ,
  Ocean::CV::PD_SOUTH_WEST = 135 , Ocean::CV::PD_SOUTH = 180 , Ocean::CV::PD_SOUTH_EAST = 225 , Ocean::CV::PD_EAST = 270 ,
  Ocean::CV::PD_NORTH_EAST = 315
}
 Definition of individual directions with pixel accuracy. More...
 
enum  Ocean::CV::PixelCenter : uint32_t { Ocean::CV::PC_TOP_LEFT , Ocean::CV::PC_CENTER }
 Definition of individual centers of pixels. More...
 

Detailed Description

The Ocean CV Library provides basic Computer Vision functionalities.

There exist several further specialized Computer Vision libraries, like e.g,. the Advanced Computer Vision library or the Computer Vision libraries addressing feature detection tasks.
The library is platform independent.

The FrameConverterABGR32, FrameConverterARGB32, ... classes implement functions to convert frame data with specific pixel format to different pixel formats (and e.g., different pixel origins). The FrameConverter::Comfort::change() and FrameConverter::Comfort::convert() functions provide a simple interface for frame conversion task.

The Bresenham and Canvas class provide drawing and painting functionalities (also with sub-pixel accuracies).

Several individual common frame filter are implemented in e.g., FrameFilterGaussian, FrameFilterSeparable, FrameFilterDilation, ..., FrameFilterScharr, ...

The FrameShrinker allows to reduce the size of a frame while the FrameEnlarger allows to increase the size of a frame. The FrameShrinkerAlpha additionally provides specific support for frames with alpha channel.

The SSE class provides SIMD functions for x86, x64 platforms while the NEON class provides SIMD functions for Android ARM platforms.

The PixelPosition class stores a 2D pixel-accurate position, the PixelBoundingBox class implements a bounding box with pixel-accuracy.

The NonMaximumSuppression class provides a multi-core-capable solution to determine peaks in filter responses e.g., for feature point detection.

The SubRegion class can be used to determine a sub-region within a frame either by defining a mask or by defining the 2D coordinates of the contour.

The SumAbsoluteDifferences, the SumSquareDifferences and the ZeroMeanSumSquareDifferences classes provide functions measuring distances between image regions (patches).

Typedef Documentation

◆ FeatureIndices

typedef std::vector<unsigned int> Ocean::CV::Detector::FeatureIndices

Definition of a vector holding feature indices.

◆ FrameProviderInterfaceRef

Definition of an object reference holding a frame provider interface.

See also
FrameProviderInterface;

◆ MotionSAD

Definition of a Motion class that applies sum absolute difference calculations as metric.

See also
MotionSSD, MotionZeroMeanSSD, Motion.

◆ MotionSSD

Definition of a Motion class that applies sum square difference calculations as metric.

See also
MotionSAD, MotionZeroMeanSSD, Motion.

◆ MotionZeroMeanSSD

Definition of a Motion class that applies zero-mean sum square difference calculations as metric.

See also
MotionSAD, MotionSSD, Motion.

◆ PixelBoundingBox

Definition of the default PixelBoundingBox object with data type allowing only positive coordinate values.

See also
PixelPositionT

◆ PixelBoundingBoxes

Definition of a vector holding bounding box objects with only positive coordinate values.

See also
PixelBoundingBox

◆ PixelBoundingBoxesI

Definition of a vector holding bounding box objects with positive and negative coordinate values.

See also
PixelBoundingBoxI

◆ PixelBoundingBoxI

Definition of a PixelBoundingBox object with data type allowing positive and negative coordinate values.

See also
PixelPositionT

◆ PixelDirections

Definition of a vector holding pixel directions.

◆ PixelPosition

Definition of the default PixelPosition object with a data type allowing only positive coordinate values.

See also
PixelPositionT

◆ PixelPositionI

Definition of a PixelPosition object with a data type allowing positive and negative coordinate values.

See also
PixelPositionT

◆ PixelPositions

Definition of a vector holding pixel positions (with positive coordinate values).

See also
PixelPosition

◆ PixelPositionsI

Definition of a vector holding pixel positions (with positive and negative coordinate values).

See also
PixelPositionI

Enumeration Type Documentation

◆ PixelCenter

enum Ocean::CV::PixelCenter : uint32_t

Definition of individual centers of pixels.

Enumerator
PC_TOP_LEFT 

The center of a pixel is in the upper-left corner of each pixel's square.

Below an image with 2x2 pixels, the pixel center is denoted by 'X':

 X-------X-------
 |       |       |
 |       |       |    <- first pixel row of image
 |       |       |
 X-------X-------
 |       |       |
 |       |       |    <- second pixel row of image
 |       |       |
  ------- -------
PC_CENTER 

The center of a pixel is located in the center of each pixel's square (with an offset of 0.5, 0.5).

Below an image with 2x2 pixels, the pixel center is denoted by 'X':

  ------- -------
 |       |       |
 |   X   |   X   |    <- first pixel row of image
 |       |       |
  ------- -------
 |       |       |
 |   X   |   X   |    <- second pixel row of image
 |       |       |
  ------- -------

◆ PixelDirection

enum Ocean::CV::PixelDirection : int32_t

Definition of individual directions with pixel accuracy.

The values of the individual directions are defined by the angle (in counter clockwise order) in degree.
The default direction is the north direction (pointing upwards in an image with pixel origin in the top left corner).
Here is a visualization of the individual pixel directions:

Image with origin in top left corner (denoted by X) and the pixel position P:
X---------------------       X---------------------
|                     |      |                     |
|    NW    N    NE    |      |    45    0    315   |
|                     |      |                     |
|     W    P    E     |      |    90    P    270   |
|                     |      |                     |
|    SW    S    SE    |      |   135   180   225   |
|                     |      |                     |
 ---------------------        ---------------------

Beware: An invalid pixel direction (PD_INVALID) has the value -1 and not 0 as often for other enums.

Enumerator
PD_INVALID 
PD_NORTH 
PD_NORTH_WEST 
PD_WEST 
PD_SOUTH_WEST 
PD_SOUTH 
PD_SOUTH_EAST 
PD_EAST 
PD_NORTH_EAST