First, SURF (at least OpenCV one) only supports gray images.
There are many descriptor parameters available for tuning, setting them to lower values ββcan improve performance:
typedef struct CvSURFParams { int extended; // 0 means basic descriptors (64 elements each), // 1 means extended descriptors (128 elements each) double hessianThreshold; // only features with keypoint.hessian // larger than that are extracted. // good default value is ~300-500 (can depend on the // average local contrast and sharpness of the image). // user can further filter out some features based on // their hessian values and other characteristics. int nOctaves; // the number of octaves to be used for extraction. // With each next octave the feature size is doubled // (3 by default) int nOctaveLayers; // The number of layers within each octave // (4 by default) } CvSURFParams;
See OpenCV SURF Docs .
Also check out the original article and notes on the OpenSURF lib
source share