BRISK算法是2011年ICCV上《BRISK:Binary Robust Invariant Scalable Keypoints》文章中,提出来的一种特征提取算法,也是一种二进制的特征描述算子。
它具有较好的旋转不变性、尺度不变性,较好的鲁棒性等。
在图像配准应用中,速度比较:SIFT<SURF<BRISK<FREAK<ORB,
在对有较大模糊的图像配准时,BRISK算法在其中表现最为出色。
代码示例:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat img1 = imread("D:/cv400/data/box.png", 0);
Mat img2 = imread("D:/cv400/data/box_in_scene.png", 0);
if (img1.empty() || img2.empty())
{
cout << "Load image error..." << endl;
return -1;
}
imshow("object image", img1);
imshow("object in scene", img2);
// surf featurs extraction
double t1 = (double)getTickCount();
//int minHessian = 400;
Ptr<Feature2D> detector = BR