【深度学习】OpenCV 角点检测与 SIFT 特征提取详解
📅 2026/7/28 0:52:55
👁️ 次浏览
OpenCV 角点检测与 SIFT 特征提取详解一、角点检测1. 什么是角点检测2. 检测流程3. 邻域Neighborhood4. Harris 角点检测案例关键函数说明完整代码二、SIFT 特征提取1. 什么是 SIFT2. 特征提取的一般步骤3. SIFT 案例实现完整代码代码解析关键点信息一、角点检测1. 什么是角点检测角点检测Corner Detection是计算机视觉中的一种基础特征提取方法用于识别图像中具有显著灰度变化的像素点即角点Corner。角点是图像中在不同方向上灰度值均发生剧烈变化的点例如物体的尖角两条边的交点T形或L形结构的端点角点具有以下优良特性旋转不变性图像旋转后角点仍然可被检测尺度不变性在不同缩放比例下角点依然存在光照不变性对光照变化具有一定的鲁棒性2. 检测流程角点检测通常遵循以下流程步骤描述1. 输入图像加载待检测的原始图像2. 图像预处理灰度化、降噪等为后续处理做准备3. 特征提取使用Harris、Shi-Tomasi等算法提取角点特征4. 角点响应计算计算每个像素点的角点响应值5. 角点定位与标记根据响应值定位角点并可视化标记6. 后处理可选非极大值抑制、阈值过滤等7. 输出结果返回角点坐标或标记后的图像3. 邻域Neighborhood在角点检测中邻域是指以某个中心像素为核心周围一定范围内的像素集合。邻域内的像素信息用于计算中心像素的角点响应值。邻域大小对检测结果有重要影响邻域大小特点较大邻域捕获更多细节信息但计算量增加较小邻域计算速度快但可能遗漏细微特征邻域的尺寸通常由blockSize参数控制需要根据具体的应用场景和图像特征进行调整。4. Harris 角点检测案例Harris 角点检测是一种经典的角点检测算法其核心思想是利用图像梯度计算角点响应值。关键函数说明cv2.cornerHarris(img,blockSize,ksize,k,dstNone)参数说明img输入图像需为灰度图blockSize角点检测中考虑的邻域大小ksizeSobel 算子窗口大小用于计算梯度kHarris 自由参数取值范围 [0.04, 0.06]dst输出响应矩阵与输入图像尺寸相同完整代码importcv2# 加载图像imgcv2.imread(huanghelou.png)cv2.imshow(原始图像,img)cv2.waitKey(0)# 灰度转换graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# Harris 角点检测# blockSize4ksize3k0.04dstcv2.cornerHarris(gray,4,3,0.04)# 标记角点响应值大于阈值的像素标记为绿色threshold0.05*dst.max()img[dstthreshold][0,255,0]# 显示结果cv2.imshow(角点检测结果,img)cv2.waitKey(0)cv2.destroyAllWindows()代码解析gray 输入图像必须为灰度图blockSize4 表示邻域尺寸为 4×4ksize3 表示 Sobel 算子的孔径大小为 3k0.04 为 Harris 自由参数值越小检测到的角点越多dst 矩阵中值越大的像素是角点的概率越高通过阈值 0.05 * dst.max() 筛选角点二、SIFT 特征提取1. 什么是 SIFTSIFTScale-Invariant Feature Transform尺度不变特征变换 是一种用于检测和描述图像局部特征的经典算法。SIFT 能够在尺度空间中寻找极值点并提取出具有以下特性的关键点尺度不变性对图像缩放具有鲁棒性旋转不变性对图像旋转具有鲁棒性光照不变性对光照变化具有一定的容忍度SIFT 提取的特征点可以用于图像匹配、目标识别、三维重建等多种任务。2. 特征提取的一般步骤步骤描述1. 数据预处理去噪、归一化、平滑等2. 特征选择选择合适的特征子集避免冗余和噪声3. 特征提取使用数学算法计算和提取特征4. 特征表示将特征表示为向量或其他便于计算的形式好的特征应具备辨别性能够区分不同类别或实例鲁棒性对变形和噪声有一定容忍度3. SIFT 案例实现完整代码importcv2importnumpyasnp# 加载图像mancv2.imread(man.png)cv2.imshow(原始图像,man)cv2.waitKey(0)# 灰度转换man_graycv2.cvtColor(man,cv2.COLOR_BGR2GRAY)# 创建 SIFT 对象siftcv2.SIFT_create()# 检测关键点kpsift.detect(man_gray)# 打印所有关键点坐标forpointinkp:print(f关键点坐标:{point.pt})# 绘制关键点显示尺度和方向man_siftcv2.drawKeypoints(man,kp,None,flagscv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)cv2.imshow(SIFT 关键点,man_sift)cv2.waitKey(0)# 计算关键点描述符用于后续匹配keypoints,descriptorssift.compute(man,kp)print(f关键点数量:{np.array(keypoints).shape[0]})print(f描述符矩阵形状:{descriptors.shape})print(描述符维度: 128 维)cv2.destroyAllWindows()代码解析方法说明cv2.SIFT_create()创建 SIFT 检测器对象sift.detect(gray)检测图像中的关键点返回关键点列表sift.compute(img, kp)计算关键点的描述符128维向量cv2.drawKeypoints()在图像上绘制关键点关键点信息每个关键点包含坐标 (x, y)、尺度、方向每个关键点的描述符为 128 维向量描述符可用于后续的特征匹配如 FLANN、BFMatcher
当团队文档越来越多,查找越来越慢;当客服每天重复回答同样的问题;当新人入职培训找不到资料……你是否想过:如果有一个智能助手,能秒懂所有公司知识,该多好?
这就是知识库的价值。今天ÿ…
📅 2026/7/28 0:52:55
❝
沉淀、分享、成长,让自己和他人都能有所收获!😜
❞从前车马慢,一个需求聊一天。现在端到端,今天提,明天上线!
怀念,带着零食、拎着饮料,拉着研发,一聊就是…
📅 2026/7/28 0:52:55
Harness 工程运行系统概念图 谈到递归自我改进(Recursive Self-Improvement,RSI),很多人的第一反应是:模型改自己的权重,然后能力一路加速。这个画面很抓人,但离今天的工程现场还有点远。更近的…
📅 2026/7/28 0:51:55
21天前端面试系统化备战:从基础到高级实战进阶指南 【免费下载链接】front-end-interview-handbook Front End interview preparation materials for busy engineers (updated for 2026) 项目地址: https://gitcode.com/GitHub_Trending/fr/front-end-interview-h…
📅 2026/7/28 1:44:04
最近两年,AI领域的热点似乎总在快速切换,从大语言模型到多模态,再到如今的“具身智能”。很多刚接触这个领域的朋友,看着这些新名词,常常会陷入一种困惑:这些听起来高大上的概念,到底该怎么入手…
📅 2026/7/28 1:44:04
1. 项目概述:为什么Windows C异常捕获是个“老大难”问题?干了这么多年C开发,尤其是在Windows平台上,最让人头疼的莫过于程序在客户现场莫名其妙崩溃,日志里就留下一句“已停止工作”,然后留下一脸懵的你和…
📅 2026/7/28 1:44:04
大家好,我是专注于技术实战分享的博主。在日常工作中,无论是产品、运营还是数据分析师,都免不了需要从数据库里查询数据。但并非每个人都熟悉 SQL,频繁找开发同学帮忙,不仅效率低下,也增加了沟通成本。今天,我们就来深入探讨一款名为 WorkBuddy 的 AI 工具,看看它是如何…
📅 2026/7/28 1:44:04
1. 银发文旅产业一周动态全景解读上周的银发文旅市场可谓热闹非凡,从康养度假产品的迭代升级到适老化服务的创新实践,整个行业正在经历一场深刻的变革。作为从业十年的文旅观察者,我梳理了最具价值的七条行业资讯,这些动态不仅反映…
📅 2026/7/28 1:44:04
刚整理完电脑里那堆旧文件,翻到了2020年底的那份geo2020年12星座运势。说实话,当时看的时候心里挺堵得慌。毕竟那年大家都难,谁的日子不是关关难过关关过。现在回头看,那些所谓的“大凶”预测,大多是因为太迷信星象的负面相位。其实真正决定命运的,还是咱们自己手里的牌怎…
📅 2026/7/28 1:43:12
告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub
你是否也曾为官方Om…
📅 2026/7/28 0:00:45
做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…
📅 2026/7/28 0:00:46
2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…
📅 2026/7/28 0:00:46
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/28 1:13:29
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/28 1:13:29
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/28 1:13:29
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/27 7:11:38
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/27 17:12:43
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/27 5:11:32