python图像局部描述符(未完待续)

在过去的十年间,最成功的图像局部描述子之一是尺度不变特征变换(SIFT),它是由David Lowe发明的。SIFT在2004年由Lowe完善并经受住了时间的考验。
SIFT的全称是Scale Invariant Feature Transform,尺度不变特征变换,由加拿大教授David G.Lowe提出的。SIFT特征对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。
1 .SIFT算法具的特点
图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
独特性好,信息量丰富,适用于海量特征库进行快速、准确的匹配。
多量性,即使是很少几个物体也可以产生大量的SIFT特征
高速性,经优化的SIFT匹配算法甚至可以达到实时性
扩招性,可以很方便的与其他的特征向量进行联合。
2 .SIFT特征检测的步骤
有4个主要步骤
(1)尺度空间的极值检测 搜索所有尺度空间上的图像,通过高斯微分函数来识别潜在的对尺度和选择不变的兴趣点。
(2)特征点定位 在每个候选的位置上,通过一个拟合精细模型来确定位置尺度,关键点的选取依据他们的稳定程度。
(3)特征方向赋值 基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向,后续的所有操作都是对于关键点的方向、尺度和位置进行变换,从而提供这些特征的不变性。
(4)特征点描述 在每个特征点周围的邻域内,在选定的尺度上测量图像的局部梯度,这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变换。
1 、Harris特征匹配处理
复制网络教材上的代码
python图像局部描述符(未完待续)
python图像局部描述符(未完待续)
下图为运行结果图
python图像局部描述符(未完待续)
2 sift特征点
为了计算图像的SIFT特征,我们用开源工具包VLFeat。用Python重新实现SIFT特征提取的全过程不会很高效,而且也超出了本书的范围。VLFeat可以在www.vlfeat.org上下载,它的二进制文件可以用于一些主要的平台。这个库是用C写的,不过我们可以利用它的命令行接口。此外,它还有Matlab接口。下面代码是再现原书P40页的代码:
python图像局部描述符(未完待续)
python图像局部描述符(未完待续)
运行结果如下图:
python图像局部描述符(未完待续)
sift特征匹配
书中代码如下:
python图像局部描述符(未完待续)
python图像局部描述符(未完待续)
运行结果如下图:
python图像局部描述符(未完待续)
3 地理标记图像匹配
python图像局部描述符(未完待续)
python图像局部描述符(未完待续)
运行结果:
python图像局部描述符(未完待续)