Functions for background updating. More...
Functions | |
SIMD_API void | SimdBackgroundGrowRangeSlow (const uint8_t *value, size_t valueStride, size_t width, size_t height, uint8_t *lo, size_t loStride, uint8_t *hi, size_t hiStride) |
Performs background update (initial grow, slow mode). More... | |
SIMD_API void | SimdBackgroundGrowRangeFast (const uint8_t *value, size_t valueStride, size_t width, size_t height, uint8_t *lo, size_t loStride, uint8_t *hi, size_t hiStride) |
Performs background update (initial grow, fast mode). More... | |
SIMD_API void | SimdBackgroundIncrementCount (const uint8_t *value, size_t valueStride, size_t width, size_t height, const uint8_t *loValue, size_t loValueStride, const uint8_t *hiValue, size_t hiValueStride, uint8_t *loCount, size_t loCountStride, uint8_t *hiCount, size_t hiCountStride) |
Performs collection of background statistic. More... | |
SIMD_API void | SimdBackgroundAdjustRange (uint8_t *loCount, size_t loCountStride, size_t width, size_t height, uint8_t *loValue, size_t loValueStride, uint8_t *hiCount, size_t hiCountStride, uint8_t *hiValue, size_t hiValueStride, uint8_t threshold) |
Performs adjustment of background range. More... | |
SIMD_API void | SimdBackgroundAdjustRangeMasked (uint8_t *loCount, size_t loCountStride, size_t width, size_t height, uint8_t *loValue, size_t loValueStride, uint8_t *hiCount, size_t hiCountStride, uint8_t *hiValue, size_t hiValueStride, uint8_t threshold, const uint8_t *mask, size_t maskStride) |
Performs adjustment of background range with using adjust range mask. More... | |
SIMD_API void | SimdBackgroundShiftRange (const uint8_t *value, size_t valueStride, size_t width, size_t height, uint8_t *lo, size_t loStride, uint8_t *hi, size_t hiStride) |
Shifts background range. More... | |
SIMD_API void | SimdBackgroundShiftRangeMasked (const uint8_t *value, size_t valueStride, size_t width, size_t height, uint8_t *lo, size_t loStride, uint8_t *hi, size_t hiStride, const uint8_t *mask, size_t maskStride) |
Shifts background range with using shift range mask. More... | |
SIMD_API void | SimdBackgroundInitMask (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t index, uint8_t value, uint8_t *dst, size_t dstStride) |
Creates background update mask. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundGrowRangeSlow (const View< A > &value, View< A > &lo, View< A > &hi) |
Performs background update (initial grow, slow mode). More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundGrowRangeFast (const View< A > &value, View< A > &lo, View< A > &hi) |
Performs background update (initial grow, fast mode). More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundIncrementCount (const View< A > &value, const View< A > &loValue, const View< A > &hiValue, View< A > &loCount, View< A > &hiCount) |
Performs collection of background statistic. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundAdjustRange (View< A > &loCount, View< A > &loValue, View< A > &hiCount, View< A > &hiValue, uint8_t threshold) |
Performs adjustment of background range. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundAdjustRange (View< A > &loCount, View< A > &loValue, View< A > &hiCount, View< A > &hiValue, uint8_t threshold, const View< A > &mask) |
Performs adjustment of background range with using adjust range mask. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundShiftRange (const View< A > &value, View< A > &lo, View< A > &hi) |
Shifts background range. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundShiftRange (const View< A > &value, View< A > &lo, View< A > &hi, const View< A > &mask) |
Shifts background range with using shift range mask. More... | |
template<template< class > class A> | |
SIMD_INLINE void | BackgroundInitMask (const View< A > &src, uint8_t index, uint8_t value, View< A > &dst) |
Creates background update mask. More... | |
Detailed Description
Functions for background updating.
Function Documentation
◆ SimdBackgroundGrowRangeSlow()
void SimdBackgroundGrowRangeSlow | ( | const uint8_t * | value, |
size_t | valueStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | lo, | ||
size_t | loStride, | ||
uint8_t * | hi, | ||
size_t | hiStride | ||
) |
Performs background update (initial grow, slow mode).
All images must have the same width, height and format (8-bit gray).
For every point:
lo[i] -= value[i] < lo[i] ? 1 : 0; hi[i] += value[i] > hi[i] ? 1 : 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundGrowRangeSlow(const View<A>& value, View<A>& lo, View<A>& hi).
- Parameters
-
[in] value - a pointer to pixels data of current feature value. [in] valueStride - a row size of the value image. [in] width - an image width. [in] height - an image height. [in,out] lo - a pointer to pixels data of feature lower bound of dynamic background. [in] loStride - a row size of the lo image. [in,out] hi - a pointer to pixels data of feature upper bound of dynamic background. [in] hiStride - a row size of the hi image.
◆ SimdBackgroundGrowRangeFast()
void SimdBackgroundGrowRangeFast | ( | const uint8_t * | value, |
size_t | valueStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | lo, | ||
size_t | loStride, | ||
uint8_t * | hi, | ||
size_t | hiStride | ||
) |
Performs background update (initial grow, fast mode).
All images must have the same width, height and format (8-bit gray).
For every point:
lo[i] = value[i] < lo[i] ? value[i] : lo[i]; hi[i] = value[i] > hi[i] ? value[i] : hi[i];
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundGrowRangeFast(const View<A>& value, View<A>& lo, View<A>& hi).
- Parameters
-
[in] value - a pointer to pixels data of current feature value. [in] valueStride - a row size of the value image. [in] width - an image width. [in] height - an image height. [in,out] lo - a pointer to pixels data of feature lower bound of dynamic background. [in] loStride - a row size of the lo image. [in,out] hi - a pointer to pixels data of feature upper bound of dynamic background. [in] hiStride - a row size of the hi image.
◆ SimdBackgroundIncrementCount()
void SimdBackgroundIncrementCount | ( | const uint8_t * | value, |
size_t | valueStride, | ||
size_t | width, | ||
size_t | height, | ||
const uint8_t * | loValue, | ||
size_t | loValueStride, | ||
const uint8_t * | hiValue, | ||
size_t | hiValueStride, | ||
uint8_t * | loCount, | ||
size_t | loCountStride, | ||
uint8_t * | hiCount, | ||
size_t | hiCountStride | ||
) |
Performs collection of background statistic.
All images must have the same width, height and format (8-bit gray).
Updates background statistic counters for every point:
loCount[i] += (value[i] < loValue[i] && loCount[i] < 255) ? 1 : 0; hiCount[i] += (value[i] > hiValue[i] && hiCount[i] < 255) ? 1 : 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundIncrementCount(const View<A>& value, const View<A>& loValue, const View<A>& hiValue, View<A>& loCount, View<A>& hiCount).
- Parameters
-
[in] value - a pointer to pixels data of current feature value. [in] valueStride - a row size of the value image. [in] width - an image width. [in] height - an image height. [in] loValue - a pointer to pixels data of value of feature lower bound of dynamic background. [in] loValueStride - a row size of the loValue image. [in] hiValue - a pointer to pixels data of value of feature upper bound of dynamic background. [in] hiValueStride - a row size of the hiValue image. [in,out] loCount - a pointer to pixels data of count of feature lower bound of dynamic background. [in] loCountStride - a row size of the loCount image. [in,out] hiCount - a pointer to pixels data of count of feature upper bound of dynamic background. [in] hiCountStride - a row size of the hiCount image.
◆ SimdBackgroundAdjustRange()
void SimdBackgroundAdjustRange | ( | uint8_t * | loCount, |
size_t | loCountStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | loValue, | ||
size_t | loValueStride, | ||
uint8_t * | hiCount, | ||
size_t | hiCountStride, | ||
uint8_t * | hiValue, | ||
size_t | hiValueStride, | ||
uint8_t | threshold | ||
) |
Performs adjustment of background range.
All images must have the same width, height and format (8-bit gray).
Adjusts background range for every point:
loValue[i] -= (loCount[i] > threshold && loValue[i] > 0) ? 1 : 0; loValue[i] += (loCount[i] < threshold && loValue[i] < 255) ? 1 : 0; loCount[i] = 0; hiValue[i] += (hiCount[i] > threshold && hiValue[i] < 255) ? 1 : 0; hiValue[i] -= (hiCount[i] < threshold && hiValue[i] > 0) ? 1 : 0; hiCount[i] = 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundAdjustRange(View<A>& loCount, View<A>& loValue, View<A>& hiCount, View<A>& hiValue, uint8_t threshold).
- Parameters
-
[in,out] loCount - a pointer to pixels data of count of feature lower bound of dynamic background. [in] loCountStride - a row size of the loCount image. [in] width - an image width. [in] height - an image height. [in,out] hiCount - a pointer to pixels data of count of feature upper bound of dynamic background. [in] hiCountStride - a row size of the hiCount image. [in,out] loValue - a pointer to pixels data of value of feature lower bound of dynamic background. [in] loValueStride - a row size of the loValue image. [in,out] hiValue - a pointer to pixels data of value of feature upper bound of dynamic background. [in] hiValueStride - a row size of the hiValue image. [in] threshold - a count threshold.
◆ SimdBackgroundAdjustRangeMasked()
void SimdBackgroundAdjustRangeMasked | ( | uint8_t * | loCount, |
size_t | loCountStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | loValue, | ||
size_t | loValueStride, | ||
uint8_t * | hiCount, | ||
size_t | hiCountStride, | ||
uint8_t * | hiValue, | ||
size_t | hiValueStride, | ||
uint8_t | threshold, | ||
const uint8_t * | mask, | ||
size_t | maskStride | ||
) |
Performs adjustment of background range with using adjust range mask.
All images must have the same width, height and format (8-bit gray).
Adjusts background range for every point:
if(mask[i]) { loValue[i] -= (loCount[i] > threshold && loValue[i] > 0) ? 1 : 0; loValue[i] += (loCount[i] < threshold && loValue[i] < 255) ? 1 : 0; loCount[i] = 0; hiValue[i] += (hiCount[i] > threshold && hiValue[i] < 255) ? 1 : 0; hiValue[i] -= (hiCount[i] < threshold && hiValue[i] > 0) ? 1 : 0; hiCount[i] = 0; }
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundAdjustRange(View<A>& loCount, View<A>& loValue, View<A>& hiCount, View<A>& hiValue, uint8_t threshold, const View<A>& mask).
- Parameters
-
[in,out] loCount - a pointer to pixels data of count of feature lower bound of dynamic background. [in] loCountStride - a row size of the loCount image. [in] width - an image width. [in] height - an image height. [in,out] hiCount - a pointer to pixels data of count of feature upper bound of dynamic background. [in] hiCountStride - a row size of the hiCount image. [in,out] loValue - a pointer to pixels data of value of feature lower bound of dynamic background. [in] loValueStride - a row size of the loValue image. [in,out] hiValue - a pointer to pixels data of value of feature upper bound of dynamic background. [in] hiValueStride - a row size of the hiValue image. [in] threshold - a count threshold. [in] mask - a pointer to pixels data of adjust range mask. [in] maskStride - a row size of the mask image.
◆ SimdBackgroundShiftRange()
void SimdBackgroundShiftRange | ( | const uint8_t * | value, |
size_t | valueStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | lo, | ||
size_t | loStride, | ||
uint8_t * | hi, | ||
size_t | hiStride | ||
) |
Shifts background range.
All images must have the same width, height and format (8-bit gray).
For every point:
if (value[i] > hi[i]) { lo[i] = min(lo[i] + value[i] - hi[i], 255); hi[i] = value[i]; } if (lo[i] > value[i]) { lo[i] = value[i]; hi[i] = max(hi[i] - lo[i] + value[i], 0); }
This function is used for fast background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundShiftRange(const View<A>& value, View<A>& lo, View<A>& hi).
- Parameters
-
[in] value - a pointer to pixels data of current feature value. [in] valueStride - a row size of the value image. [in] width - an image width. [in] height - an image height. [in,out] lo - a pointer to pixels data of feature lower bound of dynamic background. [in] loStride - a row size of the lo image. [in,out] hi - a pointer to pixels data of feature upper bound of dynamic background. [in] hiStride - a row size of the hi image.
◆ SimdBackgroundShiftRangeMasked()
void SimdBackgroundShiftRangeMasked | ( | const uint8_t * | value, |
size_t | valueStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t * | lo, | ||
size_t | loStride, | ||
uint8_t * | hi, | ||
size_t | hiStride, | ||
const uint8_t * | mask, | ||
size_t | maskStride | ||
) |
Shifts background range with using shift range mask.
All images must have the same width, height and format (8-bit gray).
For every point:
if(mask[i]) { if (value[i] > hi[i]) { lo[i] = min(lo[i] + value[i] - hi[i], 255); hi[i] = value[i]; } if (lo[i] > value[i]) { lo[i] = value[i]; hi[i] = max(hi[i] - lo[i] + value[i], 0); } }
This function is used for fast background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundShiftRange(const View<A>& value, View<A>& lo, View<A>& hi, const View<A>& mask).
- Parameters
-
[in] value - a pointer to pixels data of current feature value. [in] valueStride - a row size of the value image. [in] width - an image width. [in] height - an image height. [in,out] lo - a pointer to pixels data of feature lower bound of dynamic background. [in] loStride - a row size of the lo image. [in,out] hi - a pointer to pixels data of feature upper bound of dynamic background. [in] hiStride - a row size of the hi image. [in] mask - a pointer to pixels data of shift range mask. [in] maskStride - a row size of the mask image.
◆ SimdBackgroundInitMask()
void SimdBackgroundInitMask | ( | const uint8_t * | src, |
size_t | srcStride, | ||
size_t | width, | ||
size_t | height, | ||
uint8_t | index, | ||
uint8_t | value, | ||
uint8_t * | dst, | ||
size_t | dstStride | ||
) |
Creates background update mask.
All images must have the same width, height and format (8-bit gray).
For every point:
if(mask[i] == index) dst[i] = value;
This function is used for background updating in motion detection algorithm.
- Note
- This function has a C++ wrapper Simd::BackgroundInitMask(const View<A>& src, uint8_t index, uint8_t value, View<A>& dst).
- Parameters
-
[in] src - a pointer to pixels data of input mask image. [in] srcStride - a row size of input mask image. [in] width - an image width. [in] height - an image height. [in] index - a mask index into input mask. [in] value - a value to fill the output mask. [out] dst - a pointer to pixels data of output mask image. [in] dstStride - a row size of output mask image.
◆ BackgroundGrowRangeSlow()
Performs background update (initial grow, slow mode).
All images must have the same width, height and format (8-bit gray).
For every point:
lo[i] -= value[i] < lo[i] ? 1 : 0; hi[i] += value[i] > hi[i] ? 1 : 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundGrowRangeSlow.
- Parameters
-
[in] value - a current feature value. [in,out] lo - a feature lower bound of dynamic background. [in,out] hi - a feature upper bound of dynamic background.
◆ BackgroundGrowRangeFast()
Performs background update (initial grow, fast mode).
All images must have the same width, height and format (8-bit gray).
For every point:
lo[i] = value[i] < lo[i] ? value[i] : lo[i]; hi[i] = value[i] > hi[i] ? value[i] : hi[i];
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundGrowRangeFast.
- Parameters
-
[in] value - a current feature value. [in,out] lo - a feature lower bound of dynamic background. [in,out] hi - a feature upper bound of dynamic background.
◆ BackgroundIncrementCount()
void BackgroundIncrementCount | ( | const View< A > & | value, |
const View< A > & | loValue, | ||
const View< A > & | hiValue, | ||
View< A > & | loCount, | ||
View< A > & | hiCount | ||
) |
Performs collection of background statistic.
All images must have the same width, height and format (8-bit gray).
Updates background statistic counters for every point:
loCount[i] += (value[i] < loValue[i] && loCount[i] < 255) ? 1 : 0; hiCount[i] += (value[i] > hiValue[i] && hiCount[i] < 255) ? 1 : 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundIncrementCount.
- Parameters
-
[in] value - a current feature value. [in] loValue - a value of feature lower bound of dynamic background. [in] hiValue - a value of feature upper bound of dynamic background. [in,out] loCount - a count of feature lower bound of dynamic background. [in,out] hiCount - a count of feature upper bound of dynamic background.
◆ BackgroundAdjustRange() [1/2]
void BackgroundAdjustRange | ( | View< A > & | loCount, |
View< A > & | loValue, | ||
View< A > & | hiCount, | ||
View< A > & | hiValue, | ||
uint8_t | threshold | ||
) |
Performs adjustment of background range.
All images must have the same width, height and format (8-bit gray).
Adjusts background range for every point:
loValue[i] -= (loCount[i] > threshold && loValue[i] > 0) ? 1 : 0; loValue[i] += (loCount[i] < threshold && loValue[i] < 255) ? 1 : 0; loCount[i] = 0; hiValue[i] += (hiCount[i] > threshold && hiValue[i] < 255) ? 1 : 0; hiValue[i] -= (hiCount[i] < threshold && hiValue[i] > 0) ? 1 : 0; hiCount[i] = 0;
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundAdjustRange.
- Parameters
-
[in,out] loCount - a count of feature lower bound of dynamic background. [in,out] hiCount - a count of feature upper bound of dynamic background. [in,out] loValue - a value of feature lower bound of dynamic background. [in,out] hiValue - a value of feature upper bound of dynamic background. [in] threshold - a count threshold.
◆ BackgroundAdjustRange() [2/2]
void BackgroundAdjustRange | ( | View< A > & | loCount, |
View< A > & | loValue, | ||
View< A > & | hiCount, | ||
View< A > & | hiValue, | ||
uint8_t | threshold, | ||
const View< A > & | mask | ||
) |
Performs adjustment of background range with using adjust range mask.
All images must have the same width, height and format (8-bit gray).
Adjusts background range for every point:
if(mask[i]) { loValue[i] -= (loCount[i] > threshold && loValue[i] > 0) ? 1 : 0; loValue[i] += (loCount[i] < threshold && loValue[i] < 255) ? 1 : 0; loCount[i] = 0; hiValue[i] += (hiCount[i] > threshold && hiValue[i] < 255) ? 1 : 0; hiValue[i] -= (hiCount[i] < threshold && hiValue[i] > 0) ? 1 : 0; hiCount[i] = 0; }
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundAdjustRangeMasked.
- Parameters
-
[in,out] loCount - a count of feature lower bound of dynamic background. [in,out] hiCount - a count of feature upper bound of dynamic background. [in,out] loValue - a value of feature lower bound of dynamic background. [in,out] hiValue - a value of feature upper bound of dynamic background. [in] threshold - a count threshold. [in] mask - an adjust range mask.
◆ BackgroundShiftRange() [1/2]
Shifts background range.
All images must have the same width, height and format (8-bit gray).
For every point:
if (value[i] > hi[i]) { lo[i] = min(lo[i] + value[i] - hi[i], 255); hi[i] = value[i]; } if (lo[i] > value[i]) { lo[i] = value[i]; hi[i] = max(hi[i] - lo[i] + value[i], 0); }
This function is used for fast background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundShiftRange.
- Parameters
-
[in] value - a current feature value. [in,out] lo - a feature lower bound of dynamic background. [in,out] hi - a feature upper bound of dynamic background.
◆ BackgroundShiftRange() [2/2]
void BackgroundShiftRange | ( | const View< A > & | value, |
View< A > & | lo, | ||
View< A > & | hi, | ||
const View< A > & | mask | ||
) |
Shifts background range with using shift range mask.
All images must have the same width, height and format (8-bit gray).
For every point:
if(mask[i]) { if (value[i] > hi[i]) { lo[i] = min(lo[i] + value[i] - hi[i], 255); hi[i] = value[i]; } if (lo[i] > value[i]) { lo[i] = value[i]; hi[i] = max(hi[i] - lo[i] + value[i], 0); } }
This function is used for fast background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundShiftRangeMasked.
- Parameters
-
[in] value - a current feature value. [in,out] lo - a feature lower bound of dynamic background. [in,out] hi - a feature upper bound of dynamic background. [in] mask - a shift range mask.
◆ BackgroundInitMask()
Creates background update mask.
All images must have the same width, height and format (8-bit gray).
For every point:
if(mask[i] == index) dst[i] = value;
This function is used for background updating in motion detection algorithm.
- Note
- This function is a C++ wrapper for function SimdBackgroundInitMask.
- Parameters
-
[in] src - an input mask image. [in] index - a mask index into input mask. [in] value - a value to fill the output mask. [out] dst - an output mask image.