24 #ifndef ARM_COMPUTE_CLCANNYEDGE_H 25 #define ARM_COMPUTE_CLCANNYEDGE_H 37 class CLCompileContext;
38 class CLFillBorderKernel;
39 class CLGradientKernel;
40 class CLEdgeNonMaxSuppressionKernel;
41 class CLEdgeTraceKernel;
59 CLCannyEdge(std::shared_ptr<IMemoryManager> memory_manager =
nullptr);
78 uint8_t constant_border_value = 0);
92 uint8_t constant_border_value = 0);
95 virtual void run()
override;
99 std::unique_ptr<IFunction> _sobel;
100 std::unique_ptr<CLGradientKernel> _gradient;
101 std::unique_ptr<CLFillBorderKernel> _border_mag_gradient;
102 std::unique_ptr<CLEdgeNonMaxSuppressionKernel> _non_max_suppr;
103 std::unique_ptr<CLEdgeTraceKernel> _edge_trace;
109 CLImage _visited, _recorded, _l1_list_counter, _l1_stack;
BorderMode
Methods available to handle borders.
Base class for all functions.
Basic function to execute canny edge on OpenCL.
Copyright (c) 2017-2021 Arm Limited.
virtual void run() override
Run the kernels contained in the function.
CLCannyEdge(std::shared_ptr< IMemoryManager > memory_manager=nullptr)
Constructor.
CLCannyEdge & operator=(const CLCannyEdge &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
void configure(ICLTensor *input, ICLTensor *output, int32_t upper_thr, int32_t lower_thr, int32_t gradient_size, int32_t norm_type, BorderMode border_mode, uint8_t constant_border_value=0)
Initialise the function's source, destination, thresholds, gradient size, normalization type and bord...
Interface for OpenCL tensor.
~CLCannyEdge()
Default destructor.
Basic implementation of the OpenCL tensor interface.