Python Opencv实践 - SIFT关键点检测

参考资料:

关键点检测SIFT算法笔记_亦枫Leonlew的博客-CSDN博客

SIFT特征检测算子和sift = cv2.xfeatures2d.SIFT_create出错的解决办法_self.sift=cv2.xfeatures2d.sift_create()_刘凯数据分析的博客-CSDN博客

复制代码
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread("../SampleImages/shunsuke.jpg", cv.IMREAD_COLOR)
plt.imshow(img[:,:,::-1])

#得到灰度图
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
plt.imshow(img_gray, plt.cm.gray)

#SIFT算法
#1. 实例化SIFT
#   sift = cv.xfeatures2d.SIFT_create()
#参考资料:https://blog.csdn.net/cliukai/article/details/102525486
sift = cv.xfeatures2d.SIFT_create()
#2. 使用sift对象的检测关键点方法
#   kp,des = sift.detectAndCompute(gray, None)
#   gray:灰度图
#   返回:kp - 关键点信息,包括位置,尺度和方向信息
#        des - 关键点描述符,每个关键点对应128个梯度信息的特征向量
#参考资料:https://blog.csdn.net/cliukai/article/details/102525486
keypoints,descriptors = sift.detectAndCompute(img_gray, None)
#3. 将关键点绘制到图像上
#   cv.drawKeypoints(img, keypoints, outputimage, color, flags)
#   img: 原图,关键点要绘制到的图像
#   keypoints:关键点信息
#   outputimage:输出图像,可以是原图
#   color: 颜色设置,(b,g,r)值
#   flags: 绘图的标志
#          cv.DRAW_MATCHES_FLAGS_DEFAULT: 创建输出图像矩阵,使用现存的输出图像绘制匹配对和特征点,对每一个关键点只绘制中间点
#          cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG: 不创建输出图像矩阵,而是在输出图像上绘制匹配对
#          cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: 对每一个特征点绘制带大小和方向的关键点图像
#          cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS:单点的特征点不被绘制
cv.drawKeypoints(img, keypoints, img, (0,255,0), cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

plt.imshow(img[:,:,::-1])
相关推荐
会飞的老朱5 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º7 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
寻星探路7 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
Codebee9 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º9 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys10 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_567810 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子10 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
ValhallaCoder10 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
智驱力人工智能10 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算