用于 Python 的 OpenCV 评估功能检测器?

GSt*_*tav 5 python opencv sift feature-detection

我正在使用 Python 和 OpenCV 3.0,我正在尝试评估两个图像的 SIFT 描述符。更具体地说,我对重复率感兴趣。在 C++ 中有这个函数用于执行评估:

 cv::evaluateFeatureDetector(img_1c, img_2c, h12, &key_points_1, &key_points_2, repeatability, corrCounter); 
Run Code Online (Sandbox Code Playgroud)

但是,我还没有在 Python 中找到任何实现,我也不太明白如何(以及是否)可以使用此函数。有没有其他方法可以计算python中的重复率?

Arm*_*afa 0

这是语法:

 void cv::evaluateFeatureDetector   (   const Mat &     img1,
const Mat &     img2,
const Mat &     H1to2,
std::vector< KeyPoint > *   keypoints1,
std::vector< KeyPoint > *   keypoints2,
float &     repeatability,
int &   correspCount,
const Ptr< FeatureDetector > &  fdetector = Ptr< FeatureDetector >() 
)   
Run Code Online (Sandbox Code Playgroud)

img1 和 img2 是要匹配的两个图像,H1to2 是单应性矩阵,可以这样计算:

 H1to2 = cv::findHomography( std::vector<cv::Point2f> srcPoints , std::vector<cv::Point2f> refPoints, CV_RANSAC, 1 );
Run Code Online (Sandbox Code Playgroud)

srcPointsrefPoints进行特征匹配后得到的。

可重复性和 correspCount 是函数的输出。