1.SIFT特征原理描述
SIFT的全称是Scale Invariant Feature Transform,由加拿大教授David G.Lowe提出的。SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果,是一种非常稳定的局部特征。
总体来说,Sift算子具有以下特性:
(1)Sift特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。
(2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
(3)多量性,即使少数的几个物体也可以产生大量Sift特征向量。
(4)速度相对较快,经优化的Sift匹配算法甚至可以达到实时的要求。
(5)可扩展性强,可以很方便的与其他形式的特征向量进行联合。
Sift算法的步骤可归纳为以下三点:
(1)提取关键点;
(2)对关键点附加详细的信息(局部特征)也就是所谓的描述器;
(3)通过两方特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,也就建立了景物间的对应关系。提取关键点和对关键点附加详细的信息(局部特征)也就是所谓的描述器可以称做是Sift特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。
SIFT的特点主要有以下几个:
- 旋转、缩放、平移不变性
- 解决图像仿射变换,投影变换的关键的匹配
- 光照影响小
- 目标遮挡影响小
- 噪声景物影响小
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,测试是否安装成功。
所以我在anconda中其他平台运行完成。
3、对从不同视点拍摄的图片做地理标记