⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我
基于OpenCv的图像Harris角点检测
基于OpenCv的图像Harris角点检测
任务需求
角点检测(corner detection)是计算机视觉系统中获得图像特征的一种方法,由于角点检测的实时性和稳定性,所以角点检测广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域。角点作为一种特征点,角点检测也被称为特征点检测。
任务目标
1、掌握Harris角点检测的简单步骤
2、掌握基于OpenCv进行Harris角点检测
3、掌握基于亚像素角点检测
任务环境
1、jupyter开发环境
2、OpenCv
3、python3.6
任务实施过程
一、Harris角点检测
Harris角点检测算法是Harris和Stephens于1988年在Moravec算法的基础上提出基于信号的点特征提取方法,其基本思想为:使用一个固定窗口在图像上进行任意方向上的滑动,比较窗口中的像素灰度在窗口滑动前与滑动后的变化程度,如果在任意方向上的滑动都有着较大灰度值的变化,那么我们可以认为该窗口中存在角点。
Harris角点检测的一般步骤是根据图像窗口平移产生灰度变化得到角点响应函数R,对角点响应函数R进行阈值处理和非最大化抑制,得到选择局部区域算子最大的点作为最终的特征点。
1.导入所需要的工具包和图像
import cv2 # 导入opencv
import matplotlib.pyplot as plt # 导入绘图模块
import numpy as np # 导入numpy库
from utils import im_show # 导入显示图像函数
# 绘制图像直接展示,不用调用plt.show()
%matplotlib inline
# 用来正常显示中文标签
plt.rc('font',family="SimHei")
# 读取图像
img = cv2.imread(r'./experiment/data/qp.png')
# 将图像转换成灰度图像
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 设置画布大小
plt.figure(figsize=(6,6