图片SIFT特征匹配处理

1.SIFT特征原理描述

SIFT的全称是Scale Invariant Feature Transform,由加拿大教授David G.Lowe提出的。SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果,是一种非常稳定的局部特征。

总体来说,Sift算子具有以下特性:

1Sift特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。

2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。

3)多量性,即使少数的几个物体也可以产生大量Sift特征向量。

4)速度相对较快,经优化的Sift匹配算法甚至可以达到实时的要求。

5)可扩展性强,可以很方便的与其他形式的特征向量进行联合。

Sift算法的步骤可归纳为以下三点:

1)提取关键点;

2)对关键点附加详细的信息(局部特征)也就是所谓的描述器;

3)通过两方特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,也就建立了景物间的对应关系。提取关键点和对关键点附加详细的信息(局部特征)也就是所谓的描述器可以称做是Sift特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。

SIFT的特点主要有以下几个:

  1. 旋转、缩放、平移不变性
  2. 解决图像仿射变换,投影变换的关键的匹配
  3. 光照影响小
  4. 目标遮挡影响小
  5. 噪声景物影响小

2、对两张图片进行SIFT特征匹配处理

运行代码如下图:

运行结果如下图:

 

(1)首先第一次运行之后显示pil出现问题,之后我重新在anconda中重新安装了pil库(这个问题我忘记截图了!)这个问题就解决了。

(2)计算关键点描述符时;如果未找到关键点,可以使用函数sift.detectAndCompute()直接找到关键点并计算。

(3)运行中还遇到一个问题,是有关pcv的问题:

 

这个问题意思是没有找到一个名为pcv的库,说明pcv安装出现问题,于是,我重新跟着安装了pcv,这个问题也解决了,安装链接:https://github.com/jesolem/PCV,步骤如下:

将下载的文件解压;
打开cmd,执行如下指令: 
cd C:\Users\Administrator\Desktop\PCV 
python  setup.py install
在pycharm中输入import PCV,测试是否安装成功。
(4)我本次实验没有在python3.6完成,我运行python3.6会出现这个问题:

所以我在anconda中其他平台运行完成。

3、对从不同视点拍摄的图片做地理标记

 

 

猜你喜欢

转载自www.cnblogs.com/silencexiaoyou/p/10549622.html