opencv特征检测

一 harris角点检测

基本思想

使用一个固定的小窗口在图像上进行任意方向的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化(sobel算子),那么我们可以认为该窗口中存在角点。

如图中有一个框框,如果他的上下左右像素值都发生了变化,那么就把这个点看作角点。

具体代码

复制代码
# ========== Harris角点检测 ==========
# 读取图像
img = cv2.imread('img.png')
# 转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Harris角点检测
# blockSize: 角点检测中要考虑的邻域大小
# ksize: Sobel求导中使用的窗口大小
# k: Harris角点检测方程中的自由参数,取值参数为[0.04,0.06]
dst = cv2.cornerHarris(gray, blockSize=4, ksize=3, k=0.04)

# 标记检测到的角点
# 通过对角点响应进行阈值处理,标记出检测到的角点
# 0.05 * dst.max() 是一个阈值,大于这个值的像素点会被标记为红色
img[dst > 0.05 * dst.max()] = [0, 0, 255]

# 显示结果
cv2.imshow('Harris Corner Detection', img)
cv2.waitKey(0)

效果展示

特征检测:sift特征检测

SIFT(Scale Invariant Feature Transform)尺度不变特征变换。SIFT特征具有对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。(这个算法是特征检测中最重要的方法)

特点

1、图像的局部特征,对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

2、独特性好,信息量丰富,适用于海量特征库进行快速、准确的匹配。

3、多量性,即使是很少几个物体也可以产生大量的SIFT特征

4、高速性,经优化的SIFT匹配算法甚至可以达到实时性

5、扩招性,可以很方便的与其他的特征向量进行联合。

具体代码

复制代码
# ========== SIFT特征提取 ==========
# 读取另一张图像
man = cv2.imread('img.png')
man_gray = cv2.cvtColor(man, cv2.COLOR_BGR2GRAY)

# 创建SIFT特征提取对象
sift = cv2.SIFT_create()

# 在图像中查找关键点
kp = sift.detect(man_gray, None)

# 绘制关键点
# flags参数说明:
# cv2.DRAW_MATCHES_FLAGS_DEFAULT - 默认方式
# cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS - 绘制富有信息的关键点
man_sift = cv2.drawKeypoints(man, kp, outImage=None, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

# 显示结果
cv2.imshow('SIFT Keypoints', man_sift)
cv2.waitKey(0)

# 计算关键点描述符
kp, des = sift.compute(man_gray, kp)

# 输出关键点的形状和描述符的形状
print("关键点形状:", np.array(kp).shape)
print("描述符形状:", des.shape)

# 关键点属性说明:
# kp.pt: 关键点的(x, y)坐标
# kp.size: 关键点的大小(尺度)
# kp.angle: 关键点的方向
# kp.response: 关键点的响应值
# kp.octave: 关键点所在的金字塔层级

其中

复制代码
kp = sift.detect(man_gray, None)

检测完返回了所有的信息然后就可以画了。

结果展示

相关推荐
2601_9557594120 分钟前
Claude Opus 5 如何提升 SEO 内容生产效率:从关键词到文章发布
人工智能
小二·28 分钟前
大模型效率化革命:稀疏注意力+量化蒸馏+推理压缩,2026年如何用更少算力跑更强模型
人工智能
MartinYeung51 小时前
DC Scameter:一份反诈骗相关的专业分析报告
人工智能·安全
硅徒1 小时前
企业 RAG 的检索注入:让知识库吐出机密文档的攻击面
人工智能
Getflare1 小时前
前端 + UI 设计 + AI:这不是三个工种,是一个新三角能力模型(附自检清单)
前端·人工智能·ui
墨舟的AI笔记1 小时前
Core Web Vitals 闭环:LCP/INP/CLS 的前端监控落地
人工智能
NPE~1 小时前
[AI]Agent开发——ADK框架使用
人工智能·python·ai·教程·adk·agent开发
莫名的好感°1 小时前
国内AI视频工具哪家强?FusionAI聚合即梦Seedance、可灵Kling、HappyHorse、Google Veo,一个平台看懂所有选择
大数据·人工智能
语歌1 小时前
AI 语言学习系统的工程边界:为什么 LLM 不该负责复习排期
人工智能·swift