【Python计算机视觉编程】 第二章 图像局部描述符

本文详细介绍了Harris角点检测算法,包括其基本思想、数学表达式,以及通过源码实现和多组图像实例测试,探讨了光线、角度、尺度变化对角点检测的影响,指出其在纹理平坦图像中的应用限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.局部图像描述子

1.Harris角点检测

角点特征:
1.轮廓之间的交点。
2.对于同一场景,即使视角发生变化,通常具备稳定性质的特征。
3.该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化。
4.角点处的一阶导数最大,二阶导数为0。
5.角点指示了物体边缘变化不连续的方向。
在这里插入图片描述

1.1 Harris 角点检测算子:

Harris 算子是一种简单的点特征提取算子,这种算子受信号处理中自相关函数的启发,给出与自相关函数相联系的矩阵M。M阵的特征值是自相关函数的一阶曲率,如果两个曲率值都高,那么就认为该点是特征点。为了消除噪声对于角点检测的影响,可以使用一个高斯滤波器来平滑图像。

1.2 Harris 角点检测算法原理:

利用矩形窗在图像上移动,若窗内包含有角点,则窗口向各个方向移动时,窗内的灰度值都会发生变化。从而达到检测图像角点的目的。如果像素周围显示存在多于一个方向的边,我们认为该点为兴趣点。该点就称为角点。

1.3 Harris 角点检测基本思想:

在这里插入图片描述
在这里插入图片描述

1.4 Harris 角点检测数学表达:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.编码及实例测试

2.1 源码:
# -*- 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('D:\\xjx\pictures\jmu1.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()
2.2 图组实例测试:

图组1:角点丰富图
原图(其中一角度):
在这里插入图片描述
1.
在这里插入图片描述

在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述

结论:
角点大多取得在轮廓边缘区域,颜色较亮或很深的地方无角点,光线,角度在此组影响也不太明显(可能光线整体过暗影响测试)。

图组2:边缘丰富
原图(其一):

在这里插入图片描述

1.在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述
结论:
当图片的线条越多,在线条的交叉点容易产生角点,交点越多,角点越多,并且重复、粘连在一起。目标图像角度,明暗不同时,角点的选择略有不同,多数选择图片颜色较深的地方;远近不同时,细节更明显,因此角点的数量更多。

图组3:纹理平坦

原图1:
在这里插入图片描述
1.
在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述
结论:在纹理比较平坦的图片中,几乎取不到角点,若光线角度变化,在边缘突出或阴影处可取得角点,但是这些改变影响不大,角点数量依旧较少。

3.总结论

角点检测算子对光线亮度等变化更敏感,角度变化对结果影响不大,旋转对结果无影响,具有旋转不变性;在目标图像远近不同时,角点及其数量会有变化,由此推论Harris角点检测算子不具有尺度不变性。
纹理平坦图像变化都很微小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值