minhessian
在以下情况下究竟是什么意思
int minHessian = 50;
SurfFeatureDetector detector(minHessian);
我读过它是一个阈值......但这意味着什么?......只检测到 50 个关键点?
为了确定图像中的像素是否是 SURF 关键点,Hessian 矩阵的近似值是用像素周围补丁内的图像强度的偏导数构建的。该矩阵的行列式称为 Hessian,它告诉您该像素作为斑点中心的稳健程度。
这minHessian
是决定您愿意接受关键点的值的阈值。在实践中, 越高minHessian
,您将获得的关键点越少,但您希望它们更重复(wrt 图像转换),然后更有用。另一方面, 越低minHessian
,您获得的关键点越多,但它们可能会更加嘈杂。
在通常的图像中,400 到 800 之间的值效果很好。
请注意,SurfFeatureDetector
它不提供仅选择固定数量的关键点的方法。为此,您必须设置一个较低的 minHessian,按其 Hessian 值对结果关键点进行排序,然后删除最不持久的关键点。