Recursive bilateral image filters. More...
Functions | |
SIMD_API void * | SimdRecursiveBilateralFilterInit (size_t width, size_t height, size_t channels, const float *sigmaSpatial, const float *sigmaRange, SimdRecursiveBilateralFilterFlags flags) |
Creates Recursive bilateral filter context. More... | |
SIMD_API void | SimdRecursiveBilateralFilterRun (const void *filter, const uint8_t *src, size_t srcStride, uint8_t *dst, size_t dstStride) |
Performs image recursive bilateral filtering. More... | |
template<template< class > class A> | |
SIMD_INLINE void | RecursiveBilateralFilter (const View< A > &src, View< A > &dst, float sigmaSpatial, float sigmaRange, SimdRecursiveBilateralFilterFlags flags=SimdRecursiveBilateralFilterFast) |
Performs image recursive bilateral filtering. More... | |
Detailed Description
Recursive bilateral image filters.
Enumeration Type Documentation
◆ SimdRecursiveBilateralFilterFlags
Describes Recursive Bilateral Filter flags. This type used in function SimdRecursiveBilateralFilterInit.
Function Documentation
◆ SimdRecursiveBilateralFilterInit()
void * SimdRecursiveBilateralFilterInit | ( | size_t | width, |
size_t | height, | ||
size_t | channels, | ||
const float * | sigmaSpatial, | ||
const float * | sigmaRange, | ||
SimdRecursiveBilateralFilterFlags | flags | ||
) |
Creates Recursive bilateral filter context.
An using example:
float sigmaSpatial = 0.2f, sigmaRange = 0.2f; void* filter = SimdRecursiveBilateralFilterInit(width, height, channels, &sigmaSpatial, &sigmaRange, SimdRecursiveBilateralFilterFast); if (filter) { SimdRecursiveBilateralFilterRun(filter, src, srcStride, dst, dstStride); SimdRelease(filter); }
- Parameters
-
[in] width - a width of input and output image. [in] height - a height of input and output image. [in] channels - a channel number of input and output image. Its value must be in range [1..4]. [in] sigmaSpatial - a pointer to sigma spatial parameter. [in] sigmaRange - a pointer to sigma range parameter. [in] flags - a flags of algorithm parameters.
- Returns
- a pointer to filter context. On error it returns NULL. This pointer is used in functions SimdRecursiveBilateralFilterRun. It must be released with using of function SimdRelease.
◆ SimdRecursiveBilateralFilterRun()
void SimdRecursiveBilateralFilterRun | ( | const void * | filter, |
const uint8_t * | src, | ||
size_t | srcStride, | ||
uint8_t * | dst, | ||
size_t | dstStride | ||
) |
Performs image recursive bilateral filtering.
- Parameters
-
[in] filter - a filter context. It must be created by function SimdRecursiveBilateralFilterInit and released by function SimdRelease. [in] src - a pointer to pixels data of the original input image. [in] srcStride - a row size (in bytes) of the input image. [out] dst - a pointer to pixels data of the filtered output image. [in] dstStride - a row size (in bytes) of the output image.
◆ RecursiveBilateralFilter()
void RecursiveBilateralFilter | ( | const View< A > & | src, |
View< A > & | dst, | ||
float | sigmaSpatial, | ||
float | sigmaRange, | ||
SimdRecursiveBilateralFilterFlags | flags = SimdRecursiveBilateralFilterFast |
||
) |
Performs image recursive bilateral filtering.
All images must have the same width, height and pixel format.
- Note
- This function is a C++ wrapper for functionû SimdRecursiveBilateralFilterInit and SimdRecursiveBilateralFilterRun.
- Parameters
-
[in] src - an original input image. [out] dst - a filtered output image. [in] sigmaSpatial - a sigma spatial parameter. [in] sigmaRange - a sigma range parameter. [in] flags - a flags of algorithm parameters. By default it is equal to SimdRecursiveBilateralFilterFast.