OpenCV 实现 SIFT→SURF 算法关键点检测实现

news2024/11/27 18:45:37

1,SIFT算法原理

1.1,基本流程

1.1.1   尺度空间极值检测

1.1.2 关键点定位

1.1.3  关键点方向确定

1.1.4  关键点描述

1.1.5   总结

1.2   SURF原理

2  代码实现

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from  pylab import mpl

mpl.rcParams['font.sans-serif']  = ['SimHei']

#读取图像
img = cv.imread('aa.jpg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

#2  sift关键点检测
#2.1  实例化sift对象
sift = cv.xfeatures2d.SIFT_create()

#2.2 关键点检测  :  kp关键点信息包括  方向、尺度、位置信息,des是关键点的描述符
kp , des = sift.detectAndCompute(gray , None)

#2.3  在图像上绘制关键点的检测结果
cv.drawKeypoints(img , kp , img , flags=cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

#图像的显示
plt.figure(figsize=(5,4),dpi=100)
plt.imshow(img[:,:,:-1]),plt.title("sift  关键点检测")
plt.xticks([]),plt.yticks([])
plt.show()

3  结果展示

4,你肯定会遇到报错

cv2.error: OpenCV(3.4.8) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cp

解决办法(点击):

解决办法地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

open ai chartgpt 安装插件 txyz.ai

1 chatgpt 页面 左下角 用户 -> setting 2 3

RK3568驱动指南|第五期-中断-第44章 共享工作队列实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

2023年深圳等保测评机构名称以及地址汇总

你知道深圳等保测评机构有哪些?知道在哪里吗?今天我们小编就给大家汇总一下。 2023年深圳等保测评机构名称以及地址汇总 序号:1 名称:深圳市信息安全管理中心 地址:深圳市福田区莲花街道福中路城市数字资源中心 序…

CMake 官方完整版

CMake 官方完整版 一些概念TargetSignature 1. A Basic Starting Point(Step 1)Adding a Version Number and Configured Header FileSpecify the C StandardBuild and Test 2. Adding a Library(Step 2)-添加一个库Adding an Option 3. Adding Usage Requirements for Library…

【Verilog 教程】4.8Verilog 过程连续赋值

关键词:deassign,force,release 过程连续赋值是过程赋值的一种。这种赋值语句能够替换其他所有 wire 或 reg 的赋值,改写了 wire 或 reg 型变量的当前值。 与过程赋值不同的是,过程连续赋值的表达式能被连续的驱动到 …

pinyin-match选择器拼音快速检索目标

npm地址:https://www.npmjs.com/package/pinyin-match 选择器拼音快速检索目标(pinyin-match) 一. 使用方法二. 使用实例三. 实现效果 一. 使用方法 安装 pinyin-match 包 yarn add pinyin-match 或 npm install pinyin-match --save 引入 …

3分钟,免费制作一个炫酷实用的数据可视化大屏!

在当前大数据时代背景下,数据已成为在工业革命中如同煤炭、石油一般宝贵的资源。但是由于数据越来越庞大、越来越复杂,导致数据的可读性也越来越低。因此,对数据可视化的需求也越来越高,需要解决的问题也越来越复杂,而…

测试工程师高效编写API测试

1、自动化测试流程 我一直有编写自动化测试的习惯,但之前一直没有达到最理想的效果,也在反思问题出现的原因,最近终于有了一些思路。其主要的原因是之前写测试都是靠感觉,感觉哪些需要测试了,就写一个测试&#xff0c…

【面试必刷TOP101】二分查找-I 二维数组中的查找

目录 题目:二分查找-I_牛客题霸_牛客网 (nowcoder.com) 题目的接口: 解题思路: 代码: 过啦!!! 题目:二维数组中的查找_牛客题霸_牛客网 (nowcoder.com) 题目的接口&#xff1…

emacs怎么安装插件

2023年9月26日,周二下午 目录 Linux下Emacs的配置文件位置包管理器elpa怎么给elpa换源罗列可按照的插件怎么搜索插件怎么安装插件配置插件 Linux下Emacs的配置文件位置 默认配置文件位置是 ~/.emacs 或 ~/.emacs.d/init.el 如果没有inti.el的话,自己创…

产品经理如何进行项目管理?

在网上总是有人认为产品经理和项目经理不是一路人,工作上也没有什么共性,认为项目管理仅仅是项目经理的活,其实不然。一个项目从初始到结束这一整个周期,产品经理都是需要全程盯着的。 那么优秀的产品经理是怎么管理项目的呢&…

7、如何使用Flink中的窗口(Window算子)

目录 1、如何理解 Flink中的窗口(window) 2、Flink中窗口的类型 2.1 根据上游DataStream类型分类 2.2 根据驱动类型分类 2.3 根据进入到窗口数据的分发规则分类 3、怎样使用 Flink中的 Window算子 4、怎样使用 Flink中的 Window Assigners 4.1、…

Python 进阶 - 日常工作中使用过的简单Trick

引言:无论你是一名初学者还是有一定经验的开发者,这些技巧都能帮助你更好地利用Python来解决问题、提高效率和写出更干净、可维护的代码。无论你是数据科学家、Web开发者、自动化脚本编写者还是其他领域的从业者,这些技巧都能对你有所帮助。 …

Linux 日期、时区

1、date命令 通过date命令可以在命令行中查看系统的时间 date [-d] [格式化字符串] -d 按照给定的字符串显示日期,一般用于日期计算 格式化字符串:通过特定的字符串标记,来控制显示的日期格式 %Y 年 %y 年份后两位数字 (00..99) %m …

【百度地图】绘制扇形图层

思路:使用多边形图层PolygonLayer,借助函数将一个经纬度转换成扇形经纬度数组 扇形经纬度数组生成函数 /** 返回扇形经纬度数组 绘制多边形* lon 经度* lat 维度* radius 半径* azimuth 方向角* jiaodu(扇形的夹角)** **/ export…

java Spring Boot2.7写一个接口 提供图片预览 前端可以直接用接口地址当src为图片地址使用

我们特别是在做小程序开发时 很多图片会比较大 而小程序本身就对自身大小要求非常高 所以 图片放在服务器上提供访问链接是一种非常好的选择 我想很多前端会误认为 直接将图片放在服务器上就可以了 但其实没那么简单 因为服务器其实也可以理解为一个电脑 你就想 你自己本地都不…

python+requests+pytest+allure自动化框架

1.核心库 requests request请求 openpyxl excel文件操作 loggin 日志 smtplib 发送邮件 configparser unittest.mock mock服务 2.目录结构 base utils testDatas conf testCases testReport logs 其他 2.1base base_path.py 存放绝对路径,dos命令或Jenkins执行…

idea Springboot闲置物品交易平台VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 闲置物品交易平台是一套完善的完整二手交易信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代…

Wespeaker框架训练(2)

2. 模型训练 2.1 run.sh stage 3 数据集处理完毕后开始训练,主要是调用wespeaker/bin/train.py 函数 echo ”Start training ...” 打印提示信息,表示开始训练num_gpus$(echo $gpus | awk -F ’,’ ’print NF’) 通过gpus 变量获取要使用的GPU 数量t…