sift算法

JavaScript013

sift算法,第1张

SIFT算法主要分为四个步骤:

1、尺度空间极值检测(Scale-space extrema detection):通过使用高斯差分函数来搜索所有尺度上的图像位置,识别出其中对于尺度和方向不变的潜在兴趣点。

2、关键点定位(Keypoint localizatio):在每个候选位置上,利用一个拟合精细的模型确定位置、和尺度,关键点的选择依赖于它们的稳定程度。

3、方向匹配(Orientation assignment,为每个关键点赋予方向):基于局部图像的梯度方向,为每个关键点位置分配一个或多个方向,后续所有对图像数据的操作都是基于相对关键点的方向、尺度和位置进行变换,从而获得了方向于尺度的不变性。

4、关键点描述符(Keypoint descriptor):在每个关键点领域内,以选定的尺度计算局部图像梯度,这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

原始的图片是1080x1920, 我用电脑自带的画图把分辨率改为了

720×1280, 2560×1440,

另外还加了一个90度旋转的1080x1920

720x1080

1080×1920

2560×1440

1080×1920_旋转90度

sift对多分辨率找图效果还行, 速度不咋地,

图片越大, 耗时越长

想提升速度的话, 可以去试试suft,

大佬说sift如果3秒钟, 那么suft可以1秒钟