Python Opencv实践 - FAST关键点检测

news/2024/7/21 4:08:32 标签: python, opencv, 开发语言, 图像处理, 计算机视觉

参考资料:

FAST角点检测算法笔记_亦枫Leonlew的博客-CSDN博客

【OpenCV-Python】28.OpenCV的特征检测——特征点检测_opencv特征点检测_机器视觉小学徒的博客-CSDN博客

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread("../SampleImages/shunsuke.jpg", cv.IMREAD_COLOR)

#FAST关键点检测
#1. 创建FAST对象
#   cv.FastFeatureDetector_create()
fast = cv.FastFeatureDetector_create()
#2. 设置阈值
#    fast.setThreshold(thresh)
#    thresh: 阈值
fast.setThreshold(20)
#3. 确保非极大值抑制打开
fast.setNonmaxSuppression(1)
#4. 调用FAST对象的detect方法检测关键点
#   kp = fast.detect(img, None)
#   kp:关键点信息
#   img:待检测图像
keypoints = fast.detect(img, None)

#绘制关键点
img_threshold20 = img.copy()
cv.drawKeypoints(img_threshold20, keypoints, img_threshold20, (0,255,0))
#关闭非极大值抑制
fast.setNonmaxSuppression(0)
keypoints = fast.detect(img, None)
img_nonmaxsuppression_disabled = img.copy()
cv.drawKeypoints(img_nonmaxsuppression_disabled, keypoints, img_nonmaxsuppression_disabled, (0,255,0))

#显示图像
fig,axes = plt.subplots(nrows=1, ncols=3, figsize=(16,16), dpi=100)
axes[0].set_title("Original")
axes[0].imshow(img[:,:,::-1])
axes[1].set_title("Non Max Suppression Enabled")
axes[1].imshow(img_threshold20[:,:,::-1])
axes[2].set_title("Non Max Suppression Disabled")
axes[2].imshow(img_nonmaxsuppression_disabled[:,:,::-1])


http://www.niftyadmin.cn/n/5020652.html

相关文章

真伪之眼:探索信息纷争的艺术

一、信息的大背景: 1. 信息时代的曙光:与其说我们生活在信息时代,不如说我们是与数字共舞。早在上世纪,随着电视和广播的普及,信息已经开始比以往任何时候都传播得更迅速。然而,当互联网、智能手机和社交媒…

代码随想录算法训练营19期第49天

121. 买卖股票的最佳时机 视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1_哔哩哔哩_bilibili 代码随想录 初步思路:贪心。 总结: 分别考虑2种情况: 【1】dp[i][0] 表示第i天持有股票所得最多现金 【2】…

qml嵌入到QWidget的两种方式介绍

本文介绍qml页面嵌入到QWidget的两种方式,以及这两种方式的区别。 方式1 在 Qt 中,可以使用 QQuickWidget 将 QML 内容嵌入到基于 QWidget 的应用程序中。这是在旧的 QWidget-based 应用程序中逐渐引入 QML UI 的一种常见方式。 以下是如何使用 QQuickWidget 将 QML 内容嵌…

windows或者任何系统通过二进制安装最新的Protocol Buffer Compiler

此处使用二进制法安装,适用于任何操作系统 安装预编译的二进制文件(任何操作系统) 要从预编译的二进制文件安装最新版本的协议编译器,请按照以下说明操作: 1.从 github.com/google/protobuf/releases 手动下载与您的操作系统和计…

用GoConvey编写单元测试的一些总结

一、尽量用Convey将所有测试用例的Convey汇总 用Convey嵌套的方法,将所有测试用例的Convey用一个大的Convey包裹起来,每个测试函数下只有一个大的Convey。比如下面的示例代码: import ("testing". "github.com/smartystreet…

JavaScript(词法结构)

软件语言的词法结构: “指定一组基本规则,定义代码应该或可以如何编写” 作为世界上最容易被误解的编程语言之一,也是一种具有一些奇怪之处的软件语言,在编写 JavaScript 时,出现了许多关于什么是最佳实践的问题。在这篇博客中,我们将深入探讨JavaScript 的词法结构。词法…

修改Tomcat的默认端口号

1、找到Tomcat的安装路径。 2、打开conf文件夹。 3、用记事本打开server.xml文件 4、找到 <Connector port"8080" protocol"HTTP/1.1"&#xff0c;其中的8080就是tomcat的默认端口&#xff0c;将其修改为你需要的端口即可。

COMO-ViT论文阅读笔记

Low-Light Image Enhancement with Illumination-Aware Gamma Correction and Complete Image Modelling Network 这是一篇美团、旷视、深先院、华为诺亚方舟实验室、中国电子科技大学 五个单位合作的ICCV2023的暗图增强论文&#xff0c;不过没有开源代码。 文章的贡献点一个是…