SIFT 尺度不变特征变以及Harris对比

SIFT 尺度不变特征变
一、关于SIFT的基本原理
1.Scale-space extrema detection
尺度空间极值检测
首先要获得高斯金字塔,所谓高斯金字塔就是图片在不同的尺寸下进行高斯模糊操作后的图片, 为了寻找图片的特征点,首先得找到图片不同尺度空间中的极值,这些极值通常都出现在图片边缘或者灰度突变的地方,所以要对高斯模糊后的图片进行差分,差分后可以得到高斯模糊后的差分图像,然后在差分图像中找极值点。
2.Keypoint localization
关键点定位
由于图片的坐标是离散的,但是精确定位需要经过曲面拟合,通过差值来找到极值点的位置。
3.Orientation assignment
方向赋值
首先要计算关键点附近各个像素之间的梯度方向和梯度赋值,通过统计各个方向来确定极值点。
4.Keypoint descriptor
关键点描述
通过高斯圆对内部梯度方向和赋值进行统计,把高斯圆分成小的区域,每个小的区域中统计梯度在不同方向上的赋值的累计直方图。
二、Harris角点检测器
如果像素周围显示存在多于一个方向的边,我们则认为该点为兴趣点,,该点就是角点。
下图为代码运行结果:
SIFT 尺度不变特征变以及Harris对比_第1张图片
下图为图形结果,第一张图为原图,第二张为Harris角点检测器检测结果
SIFT 尺度不变特征变以及Harris对比_第2张图片
SIFT 尺度不变特征变以及Harris对比_第3张图片
接下来,在图像间寻找对应点,Harris角点检测器仅仅能够检测出图像中的兴趣点,但是没有给出通过比较图像间的兴趣点来寻找匹配角点的方法,所以需要在每个点上加入描述子信息,并给出一个比较这些描述子的方法。
下图为代码及运行结果
SIFT 尺度不变特征变以及Harris对比_第4张图片
首先在运行过程中,加速匹配的两行都出了问题,经过修改之后,加速的两行始终没有起到加速的作用,匹配过程还是很慢,后来对图片大小进行了修改,匹配过程就有所提升。
下图为运行结果
SIFT 尺度不变特征变以及Harris对比_第5张图片
SIFT 尺度不变特征变以及Harris对比_第6张图片
三、SIF(尺度不变特征变换)
做SIFT需要用到开源工具包VLfeat提供的二进制文件来计算图像的SIFT特征,所以需要下载VLfeat工具包,,可以从官网进行下载http://www.vlfeat.org/
下图为代码运行过程
SIFT 尺度不变特征变以及Harris对比_第7张图片
运行过程中,发现VLfaet安装出现问题,路径出现了问题,重新下载安装了VLFeat之后更改了其路径,pycharm运行时需要将一下三个文件加入pycharmProjects对应项目文件夹下在这里插入图片描述
在这里插入图片描述
运行成功结果如下图SIFT 尺度不变特征变以及Harris对比_第8张图片
SIFT 尺度不变特征变以及Harris对比_第9张图片
由运行结果可见,sift共有50个特征点匹配成功,相比Harris的匹配效果更好,sift匹配除去个别点,其余特征点匹配的都很正确,但是Harris匹配的特征点较为杂乱,可能与图片不同有关系,基于此原因,我用同样的图片进行了一次运行,结果如下SIFT 尺度不变特征变以及Harris对比_第10张图片
用了相同的图片很明显就可看出两种匹配方式不同的匹配效果,sift在此相同条件下优于Harris匹配方式。

你可能感兴趣的:(SIFT 尺度不变特征变以及Harris对比)