Image Component Library (ICL)
Public Member Functions | Private Member Functions | Private Attributes | List of all members
icl::cv::clsurf::Surf Class Reference

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) More...
 
ICLCV_API ~Surf ()
 
ICLCV_API const IpVecdetect (const core::ImgBase *image)
 our own ICL-based detection method More...
 

Private Member Functions

void createKernels ()
 
void computeIntegralImage (const icl::core::Img32f &source)
 Compute the integral image. More...
 
void createDescriptors (int i_width, int i_height)
 Create the SURF descriptors. More...
 
void getOrientations (int i_width, int i_height)
 Calculate Orientation for each Ipoint. More...
 
void reallocateIptBuffers ()
 Rellocate OpenCL buffers if the number of ipoints is too high. More...
 
void reset ()
 Resets the object state so that SURF can be run on a new frame. More...
 
const IpVecretrieveDescriptors ()
 Copy the descriptors from the GPU to the host. More...
 
void run (const icl::core::Img32f &image, bool upright)
 Run the main SURF loop. More...
 

Private Attributes

Data * m_data
 hidden implementation More...
 
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
 

Detailed Description

OpenCL-based Surf Feature detector implmentation (by AMD)

Copyright (c) 2011, Advanced Micro Devices, Inc. (see license text)

Constructor & Destructor Documentation

◆ Surf()

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)

◆ ~Surf()

ICLCV_API icl::cv::clsurf::Surf::~Surf ( )

Member Function Documentation

◆ computeIntegralImage()

void icl::cv::clsurf::Surf::computeIntegralImage ( const icl::core::Img32f source)
private

Compute the integral image.

◆ createDescriptors()

void icl::cv::clsurf::Surf::createDescriptors ( int  i_width,
int  i_height 
)
private

Create the SURF descriptors.

◆ createKernels()

void icl::cv::clsurf::Surf::createKernels ( )
private

◆ detect()

ICLCV_API const IpVec& icl::cv::clsurf::Surf::detect ( const core::ImgBase image)

our own ICL-based detection method

◆ getOrientations()

void icl::cv::clsurf::Surf::getOrientations ( int  i_width,
int  i_height 
)
private

Calculate Orientation for each Ipoint.

◆ reallocateIptBuffers()

void icl::cv::clsurf::Surf::reallocateIptBuffers ( )
private

Rellocate OpenCL buffers if the number of ipoints is too high.

◆ reset()

void icl::cv::clsurf::Surf::reset ( )
private

Resets the object state so that SURF can be run on a new frame.

◆ retrieveDescriptors()

const IpVec& icl::cv::clsurf::Surf::retrieveDescriptors ( )
private

Copy the descriptors from the GPU to the host.

◆ run()

void icl::cv::clsurf::Surf::run ( const icl::core::Img32f image,
bool  upright 
)
private

Run the main SURF loop.

Member Data Documentation

◆ createDescrtptorsKernel

CLKernel icl::cv::clsurf::Surf::createDescrtptorsKernel
private

◆ getOrientationStep1Kernel

CLKernel icl::cv::clsurf::Surf::getOrientationStep1Kernel
private

◆ getOrientationStep2Kernel

CLKernel icl::cv::clsurf::Surf::getOrientationStep2Kernel
private

◆ hessian_detKernel

CLKernel icl::cv::clsurf::Surf::hessian_detKernel
private

◆ m_data

Data* icl::cv::clsurf::Surf::m_data
private

hidden implementation

hidden data pointer

◆ nearestNeighborKernel

CLKernel icl::cv::clsurf::Surf::nearestNeighborKernel
private

◆ non_max_supressionKernel

CLKernel icl::cv::clsurf::Surf::non_max_supressionKernel
private

◆ normalizeDescriptorsKernel

CLKernel icl::cv::clsurf::Surf::normalizeDescriptorsKernel
private

◆ program

CLProgram icl::cv::clsurf::Surf::program
private

◆ scan4Kernel

CLKernel icl::cv::clsurf::Surf::scan4Kernel
private

◆ scanImageKernel

CLKernel icl::cv::clsurf::Surf::scanImageKernel
private

◆ scanKernel

CLKernel icl::cv::clsurf::Surf::scanKernel
private

◆ transposeImageKernel

CLKernel icl::cv::clsurf::Surf::transposeImageKernel
private

◆ transposeKernel

CLKernel icl::cv::clsurf::Surf::transposeKernel
private

The documentation for this class was generated from the following file: