是什么意思minHessian(Surffeaturedetector)

Mal*_*lin 13 c++ opencv

在下面的例子中,minhessian究竟意味着什么

int minHessian = 50;

SurfFeatureDetector  detector( minHessian); 
Run Code Online (Sandbox Code Playgroud)

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

最好的祝福

Chr*_*ger 27

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

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

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

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

  • 对于需要使用此功能的人,请快速注意一下.您可以使用以下命令获取'vector <KeyPoint>关键点'中每个关键点的粗体值:for(int i = 0; i <keypoints.size(); i ++)keypoints.at(i).response (5认同)