14

minhessian在以下情况下究竟是什么意思

int minHessian = 50;

SurfFeatureDetector  detector(minHessian); 

我读过它是一个阈值......但这意味着什么?......只检测到 50 个关键点?

4

1 回答 1

30

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

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

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

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

于 2013-07-12T12:41:48.687 回答