基本上你首先做的是:
SurfFeatureDetector surf(400);
surf.detect(image1, keypoints1);
Run Code Online (Sandbox Code Playgroud)
然后是:
surfDesc.compute(image1, keypoints1, descriptors1);
Run Code Online (Sandbox Code Playgroud)
为什么检测和计算是2种不同的操作?
检测后进行计算不会产生冗余循环?
我发现自己.compute
在我的申请中是最贵的.
.detect
Run Code Online (Sandbox Code Playgroud)
完成0.2秒
.compute
Run Code Online (Sandbox Code Playgroud)
需要约1秒.有没有办法加快.compute
?
关键点的检测只是选择图像中被认为是"好特征"的点的过程.
提取这些关键点的描述符是一个完全不同的过程,它编码该特征的属性,如与邻居等对比,因此可以与来自不同图像,不同sclae和方向的其他关键点进行比较.
描述关键点的方式对于成功匹配至关重要,这确实是关键因素.您描述关键点的方式也是匹配速度的决定因素.例如,您可以将其描述为float或二进制secuence.