文章目录
- 一、简述Harris角点检测
- 二、Harris角点检测原理
- 三、实验要求
- 四、实验代码
- 五、实验结果及分析
- 1.边缘丰富区域
- 2.纹理角点丰富区域
- 3.纹理平坦区域
- 六、总结
一、简述Harris角点检测
基于特征的图像配准方法是图像配准中最常见的方法之一。它不是直接利用图像像素值,二十通过像素值导出的符号特征(如特征点、特征线、特征区域)来实现图像配准,因此可以克服利用灰度信息进行图像配准的缺点,主要体现在以下三个方面:(1)利用特征点而不是图像灰度信息,大大减少了在匹配过程中的计算量;(2)特征点的匹配度量值相对位置变化比较敏感,可以提高匹配的精度;(3)特征点的提取过程可以减少噪声的影响,对灰度变化、图像形变以及遮挡等都有较好的适应能力。
一类重要的点特征:角点(corner points),其定义主要有以下:
1.局部窗口沿各方向移动,灰度均产生明显变化的点
2.图像局部曲率突变的点
典型的角点检测算法:Harris角点检测、CSS角点检测
Harris角点检测基本思想
从图像局部的小窗口观察图像特征,角点定义:窗口向任意方向的移动都导致图像灰度的明显变化(如下图)
二、Harris角点检测原理
Harris角点检测的基本思想:算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。
由泰勒展开得:
利用角点响应函数
寻找R位于一定阈值之上的局部最大值,去除伪角点。
Harris角点检测流程:
1.通过高斯函数的导数对原始图像进行卷积计算;图像在水平方向和垂直方向的导数Ix和Iy;
2.计算对应这些梯度外积即(Ix2 、Iy2、IxIy)三个图像。
4.使用高斯函数对以上图像进行卷积滤波;
3.使用前面的公式计算角点响应函数R值;
5.对计算到的角点图像进行局部极大值抑制。
三、实验要求
明确下几点基本要求:
- 需要拍摄纹理平坦、垂直或水平边缘多(如建筑物)、纹理角点丰富的三种场景
- 每种场景,至少需要有 正面、侧面、旋转、尺度(远近)变化,最好能再加光照变化
- 每种场景实验结果结束后,做实验结果的分析,分析内容需涉及到原理与实验结果的对应关系
四、实验代码
# -*- coding: utf-8 -*-
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris
"""
Example of detecting Harris corner points (Figure 2-1 in the book).
"""
# 读入图像
im = array(Image.open('../data/empire.jpg').convert('L'))
# 检测harris角点
harrisim = harris.compute_harris_response(im)
# Harris响应函数
harrisim1 = 255 - harrisim
figure()
gray()
#画出Harris响应图
subplot(141)
imshow(harrisim1)
print harrisim1.shape
axis('off')
axis('equal')
threshold = [0.01, 0.05, 0.1]
for i, thres in enumerate(threshold):
filtered_coords = harris.get_harris_points(harrisim, 6, thres)
subplot(1, 4, i+2)
imshow(im)
print im.shape
plot([p[1] for p in filtered_coords], [p[0] for p in filtered_coords], '*')
axis('off')
#原书采用的PCV中PCV harris模块
#harris.plot_harris_points(im, filtered_coords)
# plot only 200 strongest
# harris.plot_harris_points(im, filtered_coords[:200])
show()
五、实验结果及分析
1.边缘丰富区域
1.1正面
1.2侧面
1.3旋转
1.4远近对比(近)
1.5光暗对比(暗)
分析:由该组实验可知,边缘丰富区域多的图片角点较多。在正面,侧面,远处,旋转后,角点数目没有异常之处,说明角度并不影响寻找边缘丰富事物的角点,或者说影响不大,而在暗处拍摄的情况下,由于事物的颜色相近于黑色使得寻找角点时出现过于密集的情况,说明亮暗程度会影响角点的寻找,较亮的事物更精确。
2.纹理角点丰富区域
2.1正面
2.2侧面
2.3旋转
2.4远近对比(远)
2.5光暗对比(暗)
分析:由该组实验可知,纹理丰富的图片角点更甚于边缘丰富图片。在正面,侧面,旋转三种情况下,图片角点基本一致。而在远近两者的对比中,很明显近处的角点比远处多了一些,这说明,远近程度会影响纹理丰富的图片寻找角点。在暗处拍摄的照片,原先密集的点变得稀疏起来,这说明亮暗程度影响纹理丰富的图片寻找角点的程度更高,光亮的图片更有利于寻找角点。
3.纹理平坦区域
3.1正面
3.2侧面
3.3旋转
3.4远近对比(远)
3.5光暗对比(暗)
分析:由该组实验可知,纹理平坦的图片角点较少。正面,侧面,旋转,远近的图片角点基本一致,这说明角度和远近程度对纹理平坦的事物影响较小,而在亮暗条件下,角点也是基本一致,这说明,对于纹理平坦的图片来讲,寻找角点,图片的角度,远近程度,明暗程度都不大影响纹理平坦的图片寻找角点。
六、总结
本次实验,我对于图片特征提取于匹配有了一定的认识,更了解了一类重要的角特征角点的重要,以及角点检测算法的意义,在角度,远近,亮暗程度上对于Harris算法检测角点的影响。角度并不会对Harris角点检测算法太大的影响,而在远近程度上,线段可能会被认为是一个角点,在亮暗变化方面,如果图片过暗,有些部分由于灰度值接近,导致角点被认为是线段,从而影响角点检测。