What is the meaning of minHessian (Surffeaturedetector)

c++, opencv

Solution

To decide if a pixel in an image is a SURF keypoint, an approximation of the Hessian matrix is built with the partial derivatives of the image intensities within a patch around the pixel. The determinant of this matrix is called Hessian and tells you how robust that pixel is as a blob center.

The `minHessian` is a threshold to decide from which value you are willing to accept keypoints. In practice, the higher the `minHessian`, the fewer keypoints you will obtain, but you expect them to be more repetitive (w.r.t. image transformations), and then, more useful. On the other hand, the lower the `minHessian`, the more keypoints you get, but they may be more noisy.

In usual images, a value between 400 and 800 works well.

Note that `SurfFeatureDetector` does not provide a way to select just a fixed number of keypoints. To do so, you have to set a low minHessian, sort the resulting keypoints by its Hessian value and then remove the least persistent ones.

Problem

What does `minhessian` exactly mean in the following case ``` int minHessian = 50; SurfFeatureDetector detector(minHessian); ``` I have read that it is a threshold...but what does it mean?...That only 50 keypoints are detected?

Original source