图像特征检测笔记(特征检测基本概念,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特征匹配))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/483293

相关文章

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

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

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

Python+wxPython构建图像编辑器

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