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