是什么意思minHessian(Surffeaturedetector)

时间:2013-07-12 11:16:19

标签: c++ opencv

在下列情况下,minhessian究竟意味着什么

int minHessian = 50;

SurfFeatureDetector  detector( minHessian); 

我已经读过这是一个门槛......但这是什么意思?......只检测到50个关键点?

最好的问候

1 个答案:

答案 0 :(得分:27)

为了确定图像中的像素是否是SURF关键点,使用像素周围的片内的图像强度的偏导来构建Hessian矩阵的近似值。该矩阵的行列式称为Hessian,并告诉您该像素作为斑点中心的稳健性。

minHessian是一个阈值,用于决定您愿意接受关键点的值。在实践中,minHessian越高,您将获得的关键点越少,但您希望它们更具重复性(w.r.t.图像转换),然后更有用。另一方面,minHessian越低,获得的关键点越多,但它们可能会更嘈杂。

在通常的图像中,400到800之间的值效果很好。

请注意,SurfFeatureDetector不提供仅选择固定数量的关键点的方法。为此,您必须设置一个低minHessian,按照其Hessian值对生成的关键点进行排序,然后删除最不连续的关键点。