我编写了一个OpenCV c ++程序,以便使用关键点描述符在场景中查找对象的实例。 一开始我开始使用ORB进行特征检测和描述,但结果非常不准确,所以我搬到了BRISK。 代码仍然与使用ORB的代码相同,我只是从
更改了构造函数Ptr<ORB> orb = ORB::create(500, 1.2f, 8, 31, 0, 2, ORB::HARRIS_SCORE, 31, 20);
到
cv::Ptr<cv::BRISK> brisk = cv::BRISK::create();
结果得到显着改善,程序也能正常运作!
现在我想知道,为什么? ORB和BRISK有什么区别?这就是为什么拥有相同的代码,一个比另一个更好的原因?