21.02
|
Basic function to execute laplacian pyramid. More...
#include <NELaplacianPyramid.h>
Public Member Functions | |
NELaplacianPyramid () | |
Constructor. More... | |
NELaplacianPyramid (const NELaplacianPyramid &)=delete | |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
NELaplacianPyramid & | operator= (const NELaplacianPyramid &)=delete |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
NELaplacianPyramid (NELaplacianPyramid &&)=delete | |
Prevent instances of this class from being moved (As this class contains non movable objects) More... | |
NELaplacianPyramid & | operator= (NELaplacianPyramid &&)=delete |
Prevent instances of this class from being moved (As this class contains non movable objects) More... | |
~NELaplacianPyramid () | |
Default destructor. More... | |
void | configure (const ITensor *input, IPyramid *pyramid, ITensor *output, BorderMode border_mode, uint8_t constant_border_value) |
Initialise the function's source, destinations and border mode. More... | |
void | run () override |
Run the kernels contained in the function. More... | |
Public Member Functions inherited from IFunction | |
virtual | ~IFunction ()=default |
Destructor. More... | |
virtual void | prepare () |
Prepare the function for executing. More... | |
Basic function to execute laplacian pyramid.
This function calls the following Neon kernels and functions:
First a Gaussian pyramid is created. Then, for each level i, the corresponding tensor I(i) is blurred with the Gaussian 5x5 filter, and then difference between the two tensors is the corresponding level L(i) of the Laplacian pyramid. L(i) = I(i) - Gaussian5x5(I(i)) Level 0 has always the same first two dimensions as the input tensor.
Definition at line 57 of file NELaplacianPyramid.h.
Constructor.
Definition at line 42 of file NELaplacianPyramid.cpp.
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
delete |
Prevent instances of this class from being moved (As this class contains non movable objects)
|
default |
Default destructor.
void configure | ( | const ITensor * | input, |
IPyramid * | pyramid, | ||
ITensor * | output, | ||
BorderMode | border_mode, | ||
uint8_t | constant_border_value | ||
) |
Initialise the function's source, destinations and border mode.
[in] | input | Source tensor. Data type supported: U8. |
[out] | pyramid | Destination pyramid tensors, Data type supported at each level: S16. |
[out] | output | The lowest resolution tensor necessary to reconstruct the input tensor from the pyramid. Data type supported: S16. The first two dimensions of this tensor must match the first two dimensions of the tensor in the last level of the pyramid, that is: out.width = in.width() / pow(2,pyramid_levels-1) and out.height = in.height() / pow(2,pyramid_levels-1) |
[in] | border_mode | Border mode to use. |
[in] | constant_border_value | (Optional) Constant value to use for borders if border_mode is set to CONSTANT. |
Definition at line 75 of file NELaplacianPyramid.cpp.
References Pyramid::allocate(), ARM_COMPUTE_ERROR_ON, ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN, NEDepthConvertLayer::configure(), NEGaussianPyramidHalf::configure(), ITensorInfo::dimension(), IPyramid::get_pyramid_level(), Pyramid::get_pyramid_level(), PyramidInfo::height(), ITensor::info(), IPyramid::info(), arm_compute::test::validation::info, Pyramid::init(), PyramidInfo::init(), PyramidInfo::num_levels(), arm_compute::S16, PyramidInfo::tensor_shape(), arm_compute::U8, PyramidInfo::width(), and arm_compute::WRAP.
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
delete |
Prevent instances of this class from being moved (As this class contains non movable objects)
|
overridevirtual |
Run the kernels contained in the function.
For Neon kernels:
For OpenCL kernels:
Implements IFunction.
Definition at line 53 of file NELaplacianPyramid.cpp.
References ARM_COMPUTE_ERROR_ON_MSG, INESimpleFunctionNoBorder::run(), and NEGaussianPyramidHalf::run().