Harris角点检测及数据分析

本文详细介绍了Harris角点检测的原理、数学表达、计算流程,并通过Python和OpenCV展示了基础算法代码。讨论了不同参数对角点检测结果的影响,以及在复杂图像中的挑战和解决策略。
摘要由CSDN通过智能技术生成

Harris角点检测及其数据分析

一、针对角点的概述

角点是图像很重要的特征之一,对图像图形的理解和分析有很重要的作用。

角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。

从图像分析的角度来定义角点可以有以下定义:
角点是局窗口沿各方向移动,均匀产生明显变化的点,也是图像局部曲率突变的点。

典型的角点检测算法:
1、Harris角点检测
2、CSS角点检测
在这里插入图片描述

二、HARRIS角点检测思想

本次主要介绍的Harris角点检测的算法原理。Harris角点检测算法是最简单的角点检测方法之一。下面是Harris角点检测基本原理

1、人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。

2、如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;

3、如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段。如下图:

在这里插入图片描述

三、HARRIS角点检测数学表达

1、将图像窗口平移【u,v】产生灰度变化E(u,v)。其中窗口函数(权重矩阵)可以是平坦的,也可以是高斯的如下图(权重矩阵W(通常为高斯滤波器)。
在这里插入图片描述
2、那我们该如何求解图中的I(x+u,y+v),以及E(u,v)?
延伸知识点:
一元函数泰勒展开
在这里插入图片描述
二元函数泰勒展开
在这里插入图片描述
将I(x+u, y+v)函数在(x, y)处泰勒展开,得:
在这里插入图片描述
于是对于局部微小的移动量 [u,v],可以近似得到下面的表达:
在这里插入图片描述
其中M是 22 矩阵,可由图像的导数求得:
在这里插入图片描述
窗口移动导致的图像变化量:实对称矩阵M的
特征值分析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、HARRIS角点计算流程

对角点响应函数R进行阈值处理:

R > threshold

提取R的局部极大值

PS:为了消除参数k的影响,也可采用商来计算响应:
在这里插入图片描述
Harris 角点的描述子通常是由角点周围像素块的灰度值,以及用于比较的归一化互相关矩阵构成的。其中,两个(相同大小)像素块I1(x) 和I2(x) 的相关矩阵定义为:
在这里插入图片描述
基础的互相关矩阵为f (I1(x), I2(x))=I1(x)∙I2(x),等同于矩阵点乘。而归一化互相关是相关矩阵的变形,具体为:
在这里插入图片描述

五、HARRIS基础算法代码

# -*- 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('C:/Users/admin/Desktop/convert_images_format_test/b.2.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('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<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值