Image Component Library (ICL)
|
OpenCL-based Surf Feature detector implmentation (by AMD) More...
#include <CLSurfLib.h>
Public Member Functions | |
ICLCV_API | Surf (int initialPoints, int i_height, int i_width, int octaves, int intervals, int sample_step, float threshold) |
initializer (OpenCL initialization is performed internally) | |
ICLCV_API | ~Surf () |
ICLCV_API const IpVec & | detect (const core::ImgBase *image) |
our own ICL-based detection method | |
Private Member Functions | |
void | createKernels () |
void | computeIntegralImage (const icl::core::Img32f &source) |
Compute the integral image. | |
void | createDescriptors (int i_width, int i_height) |
Create the SURF descriptors. | |
void | getOrientations (int i_width, int i_height) |
Calculate Orientation for each Ipoint. | |
void | reallocateIptBuffers () |
Rellocate OpenCL buffers if the number of ipoints is too high. | |
void | reset () |
Resets the object state so that SURF can be run on a new frame. | |
const IpVec & | retrieveDescriptors () |
Copy the descriptors from the GPU to the host. | |
void | run (const icl::core::Img32f &image, bool upright) |
Run the main SURF loop. | |
Private Attributes | |
Data * | m_data |
hidden implementation | |
CLProgram | program |
CLKernel | createDescrtptorsKernel |
CLKernel | getOrientationStep1Kernel |
CLKernel | getOrientationStep2Kernel |
CLKernel | hessian_detKernel |
CLKernel | scanKernel |
CLKernel | scan4Kernel |
CLKernel | scanImageKernel |
CLKernel | transposeKernel |
CLKernel | transposeImageKernel |
CLKernel | nearestNeighborKernel |
CLKernel | non_max_supressionKernel |
CLKernel | normalizeDescriptorsKernel |
OpenCL-based Surf Feature detector implmentation (by AMD)
Copyright (c) 2011, Advanced Micro Devices, Inc. (see license text)
ICLCV_API icl::cv::clsurf::Surf::Surf | ( | int | initialPoints, |
int | i_height, | ||
int | i_width, | ||
int | octaves, | ||
int | intervals, | ||
int | sample_step, | ||
float | threshold | ||
) |
initializer (OpenCL initialization is performed internally)
void icl::cv::clsurf::Surf::computeIntegralImage | ( | const icl::core::Img32f & | source | ) | [private] |
Compute the integral image.
void icl::cv::clsurf::Surf::createDescriptors | ( | int | i_width, |
int | i_height | ||
) | [private] |
Create the SURF descriptors.
void icl::cv::clsurf::Surf::createKernels | ( | ) | [private] |
ICLCV_API const IpVec& icl::cv::clsurf::Surf::detect | ( | const core::ImgBase * | image | ) |
our own ICL-based detection method
void icl::cv::clsurf::Surf::getOrientations | ( | int | i_width, |
int | i_height | ||
) | [private] |
Calculate Orientation for each Ipoint.
void icl::cv::clsurf::Surf::reallocateIptBuffers | ( | ) | [private] |
Rellocate OpenCL buffers if the number of ipoints is too high.
void icl::cv::clsurf::Surf::reset | ( | ) | [private] |
Resets the object state so that SURF can be run on a new frame.
const IpVec& icl::cv::clsurf::Surf::retrieveDescriptors | ( | ) | [private] |
Copy the descriptors from the GPU to the host.
void icl::cv::clsurf::Surf::run | ( | const icl::core::Img32f & | image, |
bool | upright | ||
) | [private] |
Run the main SURF loop.
Data* icl::cv::clsurf::Surf::m_data [private] |
hidden implementation
hidden data pointer
CLProgram icl::cv::clsurf::Surf::program [private] |
CLKernel icl::cv::clsurf::Surf::scan4Kernel [private] |
CLKernel icl::cv::clsurf::Surf::scanKernel [private] |