Simd Library Documentation.

Home | Release Notes | Download | Documentation | Issues | GitHub | SourceForge
Other Statistic

Estimation of various image statistic. More...

Functions

SIMD_API void SimdLaplaceAbsSum (const uint8_t *src, size_t stride, size_t width, size_t height, uint64_t *sum)
 Calculates sum of absolute value of Laplace's filter. More...
 
SIMD_API void SimdGetStatistic (const uint8_t *src, size_t stride, size_t width, size_t height, uint8_t *min, uint8_t *max, uint8_t *average)
 Finds minimal, maximal and average pixel values for given image. More...
 
SIMD_API void SimdGetMoments (const uint8_t *mask, size_t stride, size_t width, size_t height, uint8_t index, uint64_t *area, uint64_t *x, uint64_t *y, uint64_t *xx, uint64_t *xy, uint64_t *yy)
 Calculate statistical characteristics (moments) of pixels with given index. More...
 
SIMD_API void SimdValueSum (const uint8_t *src, size_t stride, size_t width, size_t height, uint64_t *sum)
 Gets sum of value of pixels for gray 8-bit image. More...
 
SIMD_API void SimdSquareSum (const uint8_t *src, size_t stride, size_t width, size_t height, uint64_t *sum)
 Gets sum of squared value of pixels for gray 8-bit image . More...
 
SIMD_API void SimdValueSquareSum (const uint8_t *src, size_t stride, size_t width, size_t height, uint64_t *valueSum, uint64_t *squareSum)
 Gets sum and squared sum of value of pixels for gray 8-bit image. More...
 
SIMD_API void SimdCorrelationSum (const uint8_t *a, size_t aStride, const uint8_t *b, size_t bStride, size_t width, size_t height, uint64_t *sum)
 Gets sum of pixel correlation for two gray 8-bit images. More...
 
template<template< class > class A>
SIMD_INLINE void LaplaceAbsSum (const View< A > &src, uint64_t &sum)
 Calculates sum of absolute value of Laplace's filter. More...
 
template<template< class > class A>
SIMD_INLINE void GetStatistic (const View< A > &src, uint8_t &min, uint8_t &max, uint8_t &average)
 Finds minimal, maximal and average pixel values for given image. More...
 
template<template< class > class A>
SIMD_INLINE void GetMoments (const View< A > &mask, uint8_t index, uint64_t &area, uint64_t &x, uint64_t &y, uint64_t &xx, uint64_t &xy, uint64_t &yy)
 Calculate statistical characteristics (moments) of pixels with given index. More...
 
template<template< class > class A>
SIMD_INLINE void ValueSum (const View< A > &src, uint64_t &sum)
 Gets sum of value of pixels for gray 8-bit image. More...
 
template<template< class > class A>
SIMD_INLINE void SquareSum (const View< A > &src, uint64_t &sum)
 Gets sum of squared value of pixels for gray 8-bit image. More...
 
template<template< class > class A>
SIMD_INLINE void ValueSquareSum (const View< A > &src, uint64_t &valueSum, uint64_t &squareSum)
 Gets sum and sum of squared value of pixels for gray 8-bit image. More...
 
template<template< class > class A>
SIMD_INLINE void CorrelationSum (const View< A > &a, const View< A > &b, uint64_t &sum)
 Gets sum of pixel correlation for two gray 8-bit images. More...
 

Detailed Description

Estimation of various image statistic.

Function Documentation

◆ SimdLaplaceAbsSum()

void SimdLaplaceAbsSum ( const uint8_t *  src,
size_t  stride,
size_t  width,
size_t  height,
uint64_t *  sum 
)

Calculates sum of absolute value of Laplace's filter.

Input image must has 8-bit gray format.

For every point:

sum += abs(
    - src[x-1, y-1] -   src[x, y-1] - src[x+1, y-1]
    - src[x-1, y]   + 8*src[x, y]   - src[x+1, y]
    - src[x-1, y+1] -   src[x, y+1] - src[x+1, y+1]).
Note
This function has a C++ wrappers: Simd::LaplaceAbsSum(const View<A>& src, uint64_t & sum).
Parameters
[in]src- a pointer to pixels data of the input image.
[in]stride- a row size of the input image.
[in]width- an image width.
[in]height- an image height.
[out]sum- a pointer to result sum.

◆ SimdGetStatistic()

void SimdGetStatistic ( const uint8_t *  src,
size_t  stride,
size_t  width,
size_t  height,
uint8_t *  min,
uint8_t *  max,
uint8_t *  average 
)

Finds minimal, maximal and average pixel values for given image.

The image must has 8-bit gray format.

Note
This function has a C++ wrappers: Simd::GetStatistic(const View<A>& src, uint8_t & min, uint8_t & max, uint8_t & average).
Parameters
[in]src- a pointer to pixels data of the input image.
[in]stride- a row size of the image.
[in]width- an image width.
[in]height- an image height.
[out]min- a pointer to unsigned 8-bit integer value with found minimal pixel value.
[out]max- a pointer to unsigned 8-bit integer value with found maximal pixel value.
[out]average- a pointer to unsigned 8-bit integer value with found average pixel value.

◆ SimdGetMoments()

void SimdGetMoments ( const uint8_t *  mask,
size_t  stride,
size_t  width,
size_t  height,
uint8_t  index,
uint64_t *  area,
uint64_t *  x,
uint64_t *  y,
uint64_t *  xx,
uint64_t *  xy,
uint64_t *  yy 
)

Calculate statistical characteristics (moments) of pixels with given index.

The image must has 8-bit gray format.

For every point:

if(mask[X, Y] == index)
{
    area += 1.
    x += X.
    y += Y.
    xx += X*X.
    xy += X*Y.
    yy += Y*Y.
}
Note
This function has a C++ wrappers: Simd::GetMoments(const View<A>& mask, uint8_t index, uint64_t & area, uint64_t & x, uint64_t & y, uint64_t & xx, uint64_t & xy, uint64_t & yy).
Parameters
[in]mask- a pointer to pixels data of the mask image.
[in]stride- a row size of the mask image.
[in]width- an image width.
[in]height- an image height.
[in]index- a mask index.
[out]area- a pointer to unsigned 64-bit integer value with found area (number of pixels with given index).
[out]x- a pointer to unsigned 64-bit integer value with found first-order moment x.
[out]y- a pointer to unsigned 64-bit integer value with found first-order moment y.
[out]xx- a pointer to unsigned 64-bit integer value with found second-order moment xx.
[out]xy- a pointer to unsigned 64-bit integer value with found second-order moment xy.
[out]yy- a pointer to unsigned 64-bit integer value with found second-order moment yy.

◆ SimdValueSum()

void SimdValueSum ( const uint8_t *  src,
size_t  stride,
size_t  width,
size_t  height,
uint64_t *  sum 
)

Gets sum of value of pixels for gray 8-bit image.

Note
This function has a C++ wrappers: Simd::ValueSum(const View<A>& src, uint64_t & sum).
Parameters
[in]src- a pointer to pixels data of the image.
[in]stride- a row size of the image.
[in]width- an image width.
[in]height- an image height.
[out]sum- the result sum.

◆ SimdSquareSum()

void SimdSquareSum ( const uint8_t *  src,
size_t  stride,
size_t  width,
size_t  height,
uint64_t *  sum 
)

Gets sum of squared value of pixels for gray 8-bit image .

Note
This function has a C++ wrappers: Simd::SquareSum(const View<A>& src, uint64_t & sum).
Parameters
[in]src- a pointer to pixels data of the image.
[in]stride- a row size of the image.
[in]width- an image width.
[in]height- an image height.
[out]sum- the result sum.

◆ SimdValueSquareSum()

void SimdValueSquareSum ( const uint8_t *  src,
size_t  stride,
size_t  width,
size_t  height,
uint64_t *  valueSum,
uint64_t *  squareSum 
)

Gets sum and squared sum of value of pixels for gray 8-bit image.

Note
This function has a C++ wrappers: Simd::ValueSquareSum(const View<A>& src, uint64_t & valueSum, uint64_t & squareSum).
Parameters
[in]src- a pointer to pixels data of the image.
[in]stride- a row size of the image.
[in]width- an image width.
[in]height- an image height.
[out]valueSum- the result value sum.
[out]squareSum- the result square sum.

◆ SimdCorrelationSum()

void SimdCorrelationSum ( const uint8_t *  a,
size_t  aStride,
const uint8_t *  b,
size_t  bStride,
size_t  width,
size_t  height,
uint64_t *  sum 
)

Gets sum of pixel correlation for two gray 8-bit images.

For all points:

sum += a[i]*b[i];

All images must have the same width and height and 8-bit gray pixel format.

Note
This function has a C++ wrappers: Simd::CorrelationSum(const View<A> & a, const View<A> & b, uint64_t & sum).
Parameters
[in]a- a pointer to pixels data of the first image.
[in]aStride- a row size of the first image.
[in]b- a pointer to pixels data of the second image.
[in]bStride- a row size of the second image.
[in]width- an images width.
[in]height- an images height.
[out]sum- a pointer to result sum.

◆ LaplaceAbsSum()

void LaplaceAbsSum ( const View< A > &  src,
uint64_t &  sum 
)

Calculates sum of absolute value of Laplace's filter.

Input image must has 8-bit gray format.

For every point:

sum += abs(
    - src[x-1, y-1] -   src[x, y-1] - src[x+1, y-1]
    - src[x-1, y]   + 8*src[x, y]   - src[x+1, y]
    - src[x-1, y+1] -   src[x, y+1] - src[x+1, y+1]).
Note
This function is a C++ wrapper for function SimdLaplaceAbsSum.
Parameters
[in]src- an input image.
[out]sum- a result sum.

◆ GetStatistic()

void GetStatistic ( const View< A > &  src,
uint8_t &  min,
uint8_t &  max,
uint8_t &  average 
)

Finds minimal, maximal and average pixel values for given image.

The image must has 8-bit gray format.

Note
This function is a C++ wrapper for function SimdGetStatistic.
Parameters
[in]src- an input image.
[out]min- a reference to unsigned 8-bit integer value with found minimal pixel value.
[out]max- a reference to unsigned 8-bit integer value with found maximal pixel value.
[out]average- a reference to unsigned 8-bit integer value with found average pixel value.

◆ GetMoments()

void GetMoments ( const View< A > &  mask,
uint8_t  index,
uint64_t &  area,
uint64_t &  x,
uint64_t &  y,
uint64_t &  xx,
uint64_t &  xy,
uint64_t &  yy 
)

Calculate statistical characteristics (moments) of pixels with given index.

The image must has 8-bit gray format.

For every point:

if(mask[X, Y] == index)
{
    area += 1.
    x += X.
    y += Y.
    xx += X*X.
    xy += X*Y.
    yy += Y*Y.
}
Note
This function is a C++ wrapper for function SimdGetMoments.
Parameters
[in]mask- a mask image.
[in]index- a mask index.
[out]area- a reference to unsigned 64-bit integer value with found area (number of pixels with given index).
[out]x- a reference to unsigned 64-bit integer value with found first-order moment x.
[out]y- a reference to unsigned 64-bit integer value with found first-order moment y.
[out]xx- a reference to unsigned 64-bit integer value with found second-order moment xx.
[out]xy- a reference to unsigned 64-bit integer value with found second-order moment xy.
[out]yy- a reference to unsigned 64-bit integer value with found second-order moment yy.

◆ ValueSum()

void ValueSum ( const View< A > &  src,
uint64_t &  sum 
)

Gets sum of value of pixels for gray 8-bit image.

Note
This function is a C++ wrapper for function SimdValueSum.
Parameters
[in]src- an input image.
[out]sum- a result sum.

◆ SquareSum()

void SquareSum ( const View< A > &  src,
uint64_t &  sum 
)

Gets sum of squared value of pixels for gray 8-bit image.

Note
This function is a C++ wrapper for function SimdSquareSum.
Parameters
[in]src- an input image.
[out]sum- a result sum.

◆ ValueSquareSum()

void ValueSquareSum ( const View< A > &  src,
uint64_t &  valueSum,
uint64_t &  squareSum 
)

Gets sum and sum of squared value of pixels for gray 8-bit image.

Note
This function is a C++ wrapper for function SimdValueSquareSum.
Parameters
[in]src- an input image.
[out]valueSum- a result value sum.
[out]squareSum- a result square sum.

◆ CorrelationSum()

void CorrelationSum ( const View< A > &  a,
const View< A > &  b,
uint64_t &  sum 
)

Gets sum of pixel correlation for two gray 8-bit images.

For all points:

sum += a[i]*b[i];

All images must have the same width and height and 8-bit gray pixel format.

Note
This function is a C++ wrapper for function SimdCorrelationSum.
Parameters
[in]a- a first image.
[in]b- a second image.
[out]sum- a result sum.