Functions for image binarization.
More...
|
SIMD_API void | SimdBinarization (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t value, uint8_t positive, uint8_t negative, uint8_t *dst, size_t dstStride, SimdCompareType compareType) |
| Performs binarization of 8-bit gray image. More...
|
|
SIMD_API void | SimdAveragingBinarization (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t value, size_t neighborhood, uint8_t threshold, uint8_t positive, uint8_t negative, uint8_t *dst, size_t dstStride, SimdCompareType compareType) |
| Performs averaging binarization of 8-bit gray image. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | Binarization (const View< A > &src, uint8_t value, uint8_t positive, uint8_t negative, View< A > &dst, SimdCompareType compareType) |
| Performs binarization of 8-bit gray image. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | AveragingBinarization (const View< A > &src, uint8_t value, size_t neighborhood, uint8_t threshold, uint8_t positive, uint8_t negative, View< A > &dst, SimdCompareType compareType) |
| Performs averaging binarization of 8-bit gray image. More...
|
|
Functions for image binarization.
void SimdBinarization |
( |
const uint8_t * |
src, |
|
|
size_t |
srcStride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t |
value, |
|
|
uint8_t |
positive, |
|
|
uint8_t |
negative, |
|
|
uint8_t * |
dst, |
|
|
size_t |
dstStride, |
|
|
SimdCompareType |
compareType |
|
) |
| |
Performs binarization of 8-bit gray image.
All images must have 8-bit gray format and must have the same width and height.
For every point: dst[i] = compare(src[i], value) ? positive : negative;
where compare(a, b) depends from compareType (see SimdCompareType).
- Note
- This function has a C++ wrapper Simd::Binarization(const View<A>& src, uint8_t value, uint8_t positive, uint8_t negative, View<A>& dst, SimdCompareType compareType).
- Parameters
-
[in] | src | - a pointer to pixels data of input 8-bit gray image (first value for compare operation). |
[in] | srcStride | - a row size of the src image. |
[in] | width | - an image width. |
[in] | height | - an image height. |
[in] | value | - a second value for compare operation. |
[in] | positive | - a destination value if comparison operation has a positive result. |
[in] | negative | - a destination value if comparison operation has a negative result. |
[out] | dst | - a pointer to pixels data of output 8-bit gray binarized image. |
[in] | dstStride | - a row size of the dst image. |
[in] | compareType | - a compare operation type (see SimdCompareType). |
void SimdAveragingBinarization |
( |
const uint8_t * |
src, |
|
|
size_t |
srcStride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t |
value, |
|
|
size_t |
neighborhood, |
|
|
uint8_t |
threshold, |
|
|
uint8_t |
positive, |
|
|
uint8_t |
negative, |
|
|
uint8_t * |
dst, |
|
|
size_t |
dstStride, |
|
|
SimdCompareType |
compareType |
|
) |
| |
Performs averaging binarization of 8-bit gray image.
All images must have 8-bit gray format and must have the same width and height.
For every point: sum = 0; area = 0;
for(dy = -neighborhood; dy <= neighborhood; ++dy)
{
for(dx = -neighborhood; dx <= neighborhood; ++dx)
{
if(x + dx >= 0 && x + dx < width && y + dy >= 0 && y + dy < height)
{
area++;
if(compare(src[x + dx, x + dy], value))
sum++;
}
}
}
dst[x, y] = sum*255 > area*threshold ? positive : negative;
where compare(a, b) depends from compareType (see SimdCompareType).
- Note
- This function has a C++ wrapper Simd::AveragingBinarization(const View<A>& src, uint8_t value, size_t neighborhood, uint8_t threshold, uint8_t positive, uint8_t negative, View<A>& dst, SimdCompareType compareType).
- Parameters
-
[in] | src | - a pointer to pixels data of input 8-bit gray image (first value for compare operation). |
[in] | srcStride | - a row size of the src image. |
[in] | width | - an image width. |
[in] | height | - an image height. |
[in] | value | - a second value for compare operation. |
[in] | neighborhood | - an averaging neighborhood. |
[in] | threshold | - a threshold value for binarization. It can range from 0 to 255. |
[in] | positive | - a destination value if for neighborhood of this point number of positive comparison is greater then threshold. |
[in] | negative | - a destination value if for neighborhood of this point number of positive comparison is lesser or equal then threshold. |
[out] | dst | - a pointer to pixels data of output 8-bit gray binarized image. |
[in] | dstStride | - a row size of the dst image. |
[in] | compareType | - a compare operation type (see SimdCompareType). |
void Binarization |
( |
const View< A > & |
src, |
|
|
uint8_t |
value, |
|
|
uint8_t |
positive, |
|
|
uint8_t |
negative, |
|
|
View< A > & |
dst, |
|
|
SimdCompareType |
compareType |
|
) |
| |
Performs binarization of 8-bit gray image.
All images must have 8-bit gray format and must have the same width and height.
For every point: dst[i] = compare(src[i], value) ? positive : negative;
where compare(a, b) depends from compareType (see SimdCompareType).
- Note
- This function is a C++ wrapper for function SimdBinarization.
- Parameters
-
[in] | src | - an input 8-bit gray image (first value for compare operation). |
[in] | value | - a second value for compare operation. |
[in] | positive | - a destination value if comparison operation has a positive result. |
[in] | negative | - a destination value if comparison operation has a negative result. |
[out] | dst | - an output 8-bit gray binarized image. |
[in] | compareType | - a compare operation type (see SimdCompareType). |
void AveragingBinarization |
( |
const View< A > & |
src, |
|
|
uint8_t |
value, |
|
|
size_t |
neighborhood, |
|
|
uint8_t |
threshold, |
|
|
uint8_t |
positive, |
|
|
uint8_t |
negative, |
|
|
View< A > & |
dst, |
|
|
SimdCompareType |
compareType |
|
) |
| |
Performs averaging binarization of 8-bit gray image.
All images must have 8-bit gray format and must have the same width and height.
For every point: sum = 0; area = 0;
for(dy = -neighborhood; dy <= neighborhood; ++dy)
{
for(dx = -neighborhood; dx <= neighborhood; ++dx)
{
if(x + dx >= 0 && x + dx < width && y + dy >= 0 && y + dy < height)
{
area++;
if(compare(src[x + dx, x + dy], value))
sum++;
}
}
}
dst[x, y] = sum*255 > area*threshold ? positive : negative;
where compare(a, b) depends from compareType (see SimdCompareType).
- Note
- This function is a C++ wrapper for function SimdAveragingBinarization.
- Parameters
-
[in] | src | - an input 8-bit gray image (first value for compare operation). |
[in] | value | - a second value for compare operation. |
[in] | neighborhood | - an averaging neighborhood. |
[in] | threshold | - a threshold value for binarization. It can range from 0 to 255. |
[in] | positive | - a destination value if for neighborhood of this point number of positive comparison is greater then threshold. |
[in] | negative | - a destination value if for neighborhood of this point number of positive comparison is lesser or equal then threshold. |
[out] | dst | - an output 8-bit gray binarized image. |
[in] | compareType | - a compare operation type (see SimdCompareType). |
|