Functions for image segmentation.
More...
|
SIMD_API void | SimdSegmentationChangeIndex (uint8_t *mask, size_t stride, size_t width, size_t height, uint8_t oldIndex, uint8_t newIndex) |
| Changes certain index in mask. More...
|
|
SIMD_API void | SimdSegmentationFillSingleHoles (uint8_t *mask, size_t stride, size_t width, size_t height, uint8_t index) |
| Fill single holes in mask. More...
|
|
SIMD_API void | SimdSegmentationPropagate2x2 (const uint8_t *parent, size_t parentStride, size_t width, size_t height, uint8_t *child, size_t childStride, const uint8_t *difference, size_t differenceStride, uint8_t currentIndex, uint8_t invalidIndex, uint8_t emptyIndex, uint8_t differenceThreshold) |
| Propagates mask index from parent (upper) to child (lower) level of mask pyramid with using 2x2 scan window. More...
|
|
SIMD_API void | SimdSegmentationShrinkRegion (const uint8_t *mask, size_t stride, size_t width, size_t height, uint8_t index, ptrdiff_t *left, ptrdiff_t *top, ptrdiff_t *right, ptrdiff_t *bottom) |
| Finds actual region of mask index location. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | SegmentationChangeIndex (View< A > &mask, uint8_t oldIndex, uint8_t newIndex) |
| Changes certain index in mask. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | SegmentationFillSingleHoles (View< A > &mask, uint8_t index) |
| Fill single holes in mask. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | SegmentationPropagate2x2 (const View< A > &parent, View< A > &child, const View< A > &difference, uint8_t currentIndex, uint8_t invalidIndex, uint8_t emptyIndex, uint8_t differenceThreshold) |
| Propagates mask index from parent (upper) to child (lower) level of mask pyramid with using 2x2 scan window. More...
|
|
template<template< class > class A> |
SIMD_INLINE void | SegmentationShrinkRegion (const View< A > &mask, uint8_t index, Rectangle< ptrdiff_t > &rect) |
| Finds actual region of mask index location. More...
|
|
Functions for image segmentation.
void SimdSegmentationChangeIndex |
( |
uint8_t * |
mask, |
|
|
size_t |
stride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t |
oldIndex, |
|
|
uint8_t |
newIndex |
|
) |
| |
Changes certain index in mask.
Mask must has 8-bit gray pixel format.
For every point: if(mask[i] == oldIndex)
mask[i] = newIndex;
- Note
- This function has a C++ wrappers: Simd::SegmentationChangeIndex(View<A> & mask, uint8_t oldIndex, uint8_t newIndex).
- Parameters
-
[in,out] | mask | - a pointer to pixels data of 8-bit gray mask image. |
[in] | stride | - a row size of the mask image. |
[in] | width | - a mask width. |
[in] | height | - a mask height. |
[in] | oldIndex | - a mask old index. |
[in] | newIndex | - a mask new index. |
void SimdSegmentationFillSingleHoles |
( |
uint8_t * |
mask, |
|
|
size_t |
stride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t |
index |
|
) |
| |
Fill single holes in mask.
Mask must has 8-bit gray pixel format.
- Note
- This function has a C++ wrappers: Simd::SegmentationFillSingleHoles(View<A> & mask, uint8_t index).
- Parameters
-
[in,out] | mask | - a pointer to pixels data of 8-bit gray mask image. |
[in] | stride | - a row size of the mask image. |
[in] | width | - an mask width. |
[in] | height | - an mask height. |
[in] | index | - a mask index. |
void SimdSegmentationPropagate2x2 |
( |
const uint8_t * |
parent, |
|
|
size_t |
parentStride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t * |
child, |
|
|
size_t |
childStride, |
|
|
const uint8_t * |
difference, |
|
|
size_t |
differenceStride, |
|
|
uint8_t |
currentIndex, |
|
|
uint8_t |
invalidIndex, |
|
|
uint8_t |
emptyIndex, |
|
|
uint8_t |
differenceThreshold |
|
) |
| |
Propagates mask index from parent (upper) to child (lower) level of mask pyramid with using 2x2 scan window.
For parent and child image must be performed: parentWidth = (childWidth + 1)/2, parentHeight = (childHeight + 1)/2. All images must have 8-bit gray pixel format. Size of different image is equal to child image.
- Note
- This function has a C++ wrappers: Simd::SegmentationPropagate2x2(const View<A> & parent, View<A> & child, const View<A> & difference, uint8_t currentIndex, uint8_t invalidIndex, uint8_t emptyIndex, uint8_t thresholdDifference).
- Parameters
-
[in] | parent | - a pointer to pixels data of 8-bit gray parent mask image. |
[in] | parentStride | - a row size of the parent mask image. |
[in] | width | - a parent mask width. |
[in] | height | - a parent mask height. |
[in,out] | child | - a pointer to pixels data of 8-bit gray child mask image. |
[in] | childStride | - a row size of the child mask image. |
[in] | difference | - a pointer to pixels data of 8-bit gray difference image. |
[in] | differenceStride | - a row size of the difference image. |
[in] | currentIndex | - propagated mask index. |
[in] | invalidIndex | - invalid mask index. |
[in] | emptyIndex | - empty mask index. |
[in] | differenceThreshold | - a difference threshold for conditional index propagating. |
void SimdSegmentationShrinkRegion |
( |
const uint8_t * |
mask, |
|
|
size_t |
stride, |
|
|
size_t |
width, |
|
|
size_t |
height, |
|
|
uint8_t |
index, |
|
|
ptrdiff_t * |
left, |
|
|
ptrdiff_t * |
top, |
|
|
ptrdiff_t * |
right, |
|
|
ptrdiff_t * |
bottom |
|
) |
| |
Finds actual region of mask index location.
Mask must has 8-bit gray pixel format.
- Note
- This function has a C++ wrappers: Simd::SegmentationShrinkRegion(const View<A> & mask, uint8_t index, Rectangle<ptrdiff_t> & rect).
- Parameters
-
[in] | mask | - a pointer to pixels data of 8-bit gray mask image. |
[in] | stride | - a row size of the mask image. |
[in] | width | - an mask width. |
[in] | height | - an mask height. |
[in] | index | - a mask index. |
[in,out] | left | - a pointer to left side. |
[in,out] | top | - a pointer to top side. |
[in,out] | right | - a pointer to right side. |
[in,out] | bottom | - a pointer to bottom side. |
void SegmentationChangeIndex |
( |
View< A > & |
mask, |
|
|
uint8_t |
oldIndex, |
|
|
uint8_t |
newIndex |
|
) |
| |
Changes certain index in mask.
Mask must has 8-bit gray pixel format.
For every point: if(mask[i] == oldIndex)
mask[i] = newIndex;
- Note
- This function is a C++ wrapper for function SimdSegmentationChangeIndex.
- Parameters
-
[in,out] | mask | - a 8-bit gray mask image. |
[in] | oldIndex | - a mask old index. |
[in] | newIndex | - a mask new index. |
void SegmentationFillSingleHoles |
( |
View< A > & |
mask, |
|
|
uint8_t |
index |
|
) |
| |
Fill single holes in mask.
Mask must has 8-bit gray pixel format.
- Note
- This function is a C++ wrapper for function SimdSegmentationFillSingleHoles.
- Parameters
-
[in,out] | mask | - a 8-bit gray mask image. |
[in] | index | - a mask index. |
void SegmentationPropagate2x2 |
( |
const View< A > & |
parent, |
|
|
View< A > & |
child, |
|
|
const View< A > & |
difference, |
|
|
uint8_t |
currentIndex, |
|
|
uint8_t |
invalidIndex, |
|
|
uint8_t |
emptyIndex, |
|
|
uint8_t |
differenceThreshold |
|
) |
| |
Propagates mask index from parent (upper) to child (lower) level of mask pyramid with using 2x2 scan window.
For parent and child image must be performed: parent.width = (child.width + 1)/2, parent.height = (child.height + 1)/2. All images must have 8-bit gray pixel format. Size of different image is equal to child image.
- Note
- This function is a C++ wrapper for function SimdSegmentationPropagate2x2.
- Parameters
-
[in] | parent | - a 8-bit gray parent mask image. |
[in,out] | child | - a 8-bit gray child mask image. |
[in] | difference | - a 8-bit gray difference image. |
[in] | currentIndex | - propagated mask index. |
[in] | invalidIndex | - invalid mask index. |
[in] | emptyIndex | - empty mask index. |
[in] | differenceThreshold | - a difference threshold for conditional index propagating. |
void SegmentationShrinkRegion |
( |
const View< A > & |
mask, |
|
|
uint8_t |
index, |
|
|
Rectangle< ptrdiff_t > & |
rect |
|
) |
| |
Finds actual region of mask index location.
Mask must has 8-bit gray pixel format.
- Note
- This function is a C++ wrapper for function SimdSegmentationShrinkRegion.
- Parameters
-
[in] | mask | - a 8-bit gray mask image. |
[in] | index | - a mask index. |
[in,out] | rect | - a region bounding box rectangle. |
|