尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

cv2.cornerHarris() 详解(Harris 角点检测)

cv2.cornerHarris() 详解(Harris 角点检测)
📅 发布时间:2026/6/20 22:24:17

cv2.cornerHarris() 详解(Harris 角点检测)

cv2.cornerHarris() 是 OpenCV 中实现Harris 角点检测的核心函数,用于检测图像中的角点(角点定义:图像中在两个正交方向上灰度变化都很大的像素点,如物体边缘的交点)。以下是完整的使用指南、参数解析、实战示例和避坑技巧:

一、核心原理

Harris 角点检测通过计算像素点的自相关矩阵,分析该点邻域内的灰度变化:
若两个方向的灰度变化都大 → 角点;
仅一个方向变化大 → 边缘;
无明显变化 → 平坦区域。最终通过响应值(R)判断是否为角点:R > 阈值 则判定为角点。

二、函数语法与参数

dst = cv2.cornerHarris(src, blockSize, ksize, k)

完整使用步骤

# -*- coding:utf-8 -*-importcv2 as cvimportnumpy as npimportsysif__name__=='__main__':# 读取图像image=cv.imread('./images/test.jpg')ifimage is None: print('Failed to read test.jpg.')sys.exit()# 转为灰度图像gray=cv.cvtColor(image, cv.COLOR_BGR2GRAY)# 计算Harris系数harris=cv.cornerHarris(gray,2,3,0.04,borderType=cv.BORDER_DEFAULT)# 对Harris进行归一化便于进行数值比较harris_nor=cv.normalize(harris, None,alpha=0,beta=255,norm_type=cv.NORM_MINMAX)harris_nor=harris_nor.astype('uint8')# 寻找Harris角点kps=[]foriinnp.argwhere(harris_nor>125): kps.append(cv.KeyPoint(i[1], i[0],1))# 绘制角点result=cv.drawKeypoints(image, kps, None)# 展示结果cv.imshow('R', harris_nor)cv.imshow('Harris KeyPoints', result)cv.waitKey(0)cv.destroyAllWindows()

常见错误及解决

错误 1:输入图像类型错误

plaintext
error: (-215:Assertion failed) src.type() == CV_32F || src.type() == CV_8U
原因:输入图像不是单通道灰度图,或未转为浮点型;
解决:确保 src 是灰度图,且执行 gray = np.float32(gray)。

错误 2:角点标记无效果

原因:阈值过高,或 k 取值不合理;
解决:降低阈值(如 0.01dst.max() → 0.005dst.max()),调整 k 至 0.04~0.06。

错误 3:亚像素检测报错

plaintext
error: (-215:Assertion failed) src.size() == patternSize
原因:corners 格式错误(需是 (N,2) 的浮点数组);
解决:确保 corners = np.float32(corners[:, ::-1]) 转换坐标格式。

适用场景与局限性

总结

cv2.cornerHarris() 核心是调参 blockSize、ksize、k,需根据图像分辨率 / 噪声调整;
降噪(高斯模糊)是提升检测效果的关键前置步骤;
高精度场景需结合 cv2.cornerSubPix() 实现亚像素级检测;
对比 Shi-Tomasi 角点检测,Harris 更适合粗检测,Shi-Tomasi 速度更快、结果更稳定。

相关新闻

  • HDMI转无线显示?手机控LED的技术边界探讨
  • 高复杂度PCB样板的精密贴片制造流程解析
  • AI元人文构想:内观照叙事模型

最新新闻

  • 2026年 扫地机/工业扫地机/厂房扫地机/仓储电动扫地机厂商最新推荐榜单:技术创新与清扫效能口碑之选 - 品牌发掘
  • Windows上的终极APK安装指南:告别复杂模拟器,一键安装Android应用
  • 哈尔滨丰田埃尔法汽车隔音、全车隔音降噪 黑龙江埃尔法汽车音响隔音改装专业户-哈尔滨博士达汽车音响 黑龙江汽车隔音行业NO.1 - 木火炎
  • 代码查重终极实战:JPlag如何3分钟揪出编程抄袭
  • 福州市仓山区吃烧烤推荐去哪家?本地实测测评 - 资讯速览
  • 全国医疗纠纷律师推荐:河北雄奕律师事务所主任齐凤,医法双修15年 - 资讯速览

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号