图像特征检测笔记(特征检测基本概念,Harris,Shi-Tomasi,SIFT,SURF,ORB,暴力特征匹配,FLANN特征匹配))

本文主要是介绍图像特征检测笔记(特征检测基本概念,Harris,Shi-Tomasi,SIFT,SURF,ORB,暴力特征匹配,FLANN特征匹配)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、特征检测基本概念
  • 二、哈里斯角点检测(Harris)
    • 1.Harris角点基本原理
    • 2.Harris角点检测API
    • 3.Harris角点检测代码实例:
  • 三、Shi-Tomasi角点检测(Shi-Tomasi)
    • 1.Shi-Tomasi角点基本原理
    • 2.Shi-Tomasi角点检测API
    • 3.Shi-Tomasi角点检测代码实例:
  • 四、SIFT关键点检测(scale-invariant feature transform)
    • 1.SIFT出现的原因
    • 2.使用SIFT的步骤
    • 3.SIFT检测代码实例:
  • 五、计算SIFT描述子(scale-invariant feature transform)
    • 1.关键点和描述子
    • 2.计算描述子
    • 3.计算SIFT描述子代码实例:
  • 六、SURF特征检测(speeded-up robust features)
    • 1.SURF的优点
    • 2.使用SURF的步骤
    • 3.SURF代码实例:
  • 七、ORB特征检测(oriented fast and rotated brief)
    • 1.ORB优势
    • 2.使用ORB的步骤
    • 3.ORB代码实例:
  • 八、暴力特征匹配
    • 1.特征匹配方法
    • 2.暴力特征匹配原理
    • 3.OpenCV特征匹配步骤
    • 4.暴力特征匹配代码实例:
  • 八、FLANN特征匹配
    • 1.FLANN优缺点
    • 3.FLANN特征匹配步骤
    • 4.暴力特征匹配代码实例:
  • 总结


前言

基于Python与OpenCV的图像特征匹配学习笔记,供大家参考


一、特征检测基本概念

特征中最重要的是角点,主要包括:
1.灰度梯度的最大值对应的像素
2.两条线的交点
3.极值点(一阶导最大值,二阶导等于0)

二、哈里斯角点检测(Harris)

1.Harris角点基本原理

在这里插入图片描述
光滑地区,无论向哪里移动,衡量系数不变;
边缘地区,垂直边缘移动,衡量系数变化剧烈;
在交点处,无论往哪个方向移动,衡量系统都变化剧烈。

2.Harris角点检测API

cornerHarris(img,blockSize,ksize,k)

img:输入图片
blockSize:窗口大小,窗口越大,敏感度越高
ksize:Solel卷积核
k:权重系数,经验值,一般0.02-0.04之间

3.Harris角点检测代码实例:

import cv2blockSize = 2
ksize = 3
k = 0.04img = cv2.imread('map1.png')
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Harris角点检测
dst = cv2.cornerHarris(gray, blockSize, ksize, k)
# 检测结果展示,红色
img[dst > 0.01 *dst.max()] = [0,0,255]cv2.imshow('harris', img)
cv2.waitKey(0)

三、Shi-Tomasi角点检测(Shi-Tomasi)

1.Shi-Tomasi角点基本原理

Shi-Tomasi是Harris角点检测的改进,不需要设置K值
Harris角点检测的稳定性与K值有关,而K是经验值,不好设定最佳值

2.Shi-Tomasi角点检测API

goodFeaturesToTrack(img,maxCorners,...)

img:输入图片
maxCorners:角点的最大数,值为0表示无限制
qualityLevel:小于1.0的正数,一般在0.01-0.1之间
minDistance:角之间最小欧式距离,忽略小于此距离的点
mask:感兴趣的区域
blockSize:窗口大小,窗口越大,敏感度越高
useHarrisDetector:是否使用Harris算法,默认false
k:默认0.04之间

3.Shi-Tomasi角点检测代码实例:

import cv2
import numpy as npmaxCorners = 1000
ql = 0.01
minDistance = 10img = cv2.imread('map1.png')gray = cv2

这篇关于图像特征检测笔记(特征检测基本概念,Harris,Shi-Tomasi,SIFT,SURF,ORB,暴力特征匹配,FLANN特征匹配))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/yujiex/article/details/123892952
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/483293

相关文章

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析