SIFT算法的特征点筛选和DMatch、Keypoint描述

SIFT算法描述

SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scaleorientation 的描述子得到特征并进行图像特征点匹配
这个算法具有比较良好的尺度不变性和旋转不变形

KeyPoint

KeyPoint类的成员变量和描述

class KeyPoint
{
   
Point2f  pt;     //特征点坐标
float  size;     //特征点邻域直径
float  angle;    //特征点的方向,值为0~360,负值表示不使用
float  response; //特征点的响应强度,代表了该点是特征点的稳健度,可以用于后续处理中特征点排序
int  octave;     //特征点所在的图像金字塔的层组
int  class_id;   //用于聚类的id
}

特征点主要保存了特征点的位置、领域直径、方向、响应强度、金字塔的层组、聚类ID

DMatch

DMatch,相信用过FAST、SURF、ORB等特征点匹配和识别算法的都遇到过这个类型,这个类型最主要的就是存储了两个特征点在各自keyPoints中的下标值,然后通过drawMatches的API实现两张图片的特征点连线。

对于如下的代码:

Mat input1 = imread("img2.jpg", 0);
Mat input2 = imread("img1.jpg", 0);
SiftFeatureDetector detector;
vector<KeyPoint> keypoints1, keypoints2;
detector.detect(input1, keypoints1);
detector.detect(input2, keypoints2);

SiftDescriptorExtractor extractor;
Mat descriptor1, descriptor2;

BruteForceMatcher<L2<float>> matcher;
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值