this post uses OPENCV 2.2 and a simple change of the extract feature will allow use on version 2.3 class atsSURF { public: cv::Mat extractPoints(cv::Mat img) { int minHessian = 500; cv::SurfFeatureDetector detector(minHessian); std::vector<cv::KeyPoint> keypoints; detector.detect(img,keypoints,img); //opencv 2.2 //detector.detect(img,keypoints); //opencv 2.3 cv::SurfDescriptorExtractor extractor; cv::Mat descriptor; extractor.compute(img,keypoints,descriptor); thisDescriptor = descriptor; thisKeypoints = keypoints; cv::Mat outim =...