计算机视觉--局部图像描述子:Harris角点检测算法、SIFT(尺度不变特征变换)

所需准备
库:PCV、VLfeat、Graphivz等库的安装教程

一、Harris角点检测算法

Harris角点检测算法是一个极简单的角点检测算法。该算法的主要思想是,如果像素周围显示存在多于一个方向的边,我们认为该点为兴趣点,该点便称为角点。
角点检测算法基本原理
人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,如果滑动前后窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点;如果滑动前后窗口内区域的灰度没有发生变化那么窗口内就不存在角点。
角点:局部窗口沿各方向移动,均产生明显变化的点;图像局部曲率突变的点。
→窗口向任意方向的移动都导致图像灰度的明显变化
在这里插入图片描述
数学表达
将图像窗口平移[u,v]产生的灰度定义为E(u,v)
在这里插入图片描述
在这里插入图片描述

我们记矩阵M的特征值为λ1,λ2
然后定义一个角点响应函数R
R=detM-k(traceM)²
detM=λ1×λ2
traceM=λ1+λ2
在这里插入图片描述
Harris角点的优点

  • 计算简单
  • 提取的点特征均匀且合理
  • 稳定:Harris算子对图像旋转、亮度变化、噪声影响和视点变换不敏感
    Harris 算子的局限性
  • 对尺度很敏感,不具有尺度不变性
  • 提取的角点精度是像素级的
  • 需要设计角点匹配算法

代码实现

from pylab import *
from PIL import Image

from PCV.localdescriptors import harris
from PCV.tools.imtools import imresize

im1 = array(Image.open("9.jpg").convert("L"))
im2 = array(Image.open("12.jpg").convert("L"))

im1 = imresize(im1, (im1.shape[1]//2, im1.shape[
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值