当前位置: 首页 > news >正文

角点特征检测技术:Harris与Harris-Laplace算法研究


👨‍🎓博主简介:博士研究生

🔬超级学长:超级学长@实验室(提供各种程序开发、实验复现与论文指导)

📧个人邮箱:easy_optics@126.com

💬个人微信:easy_optics

🐧个人企鹅:754357517


🕮 目 录

    • 摘要
    • 原理
      • 1. 角点定义
      • 2. Harris角点检测算法
      • 3. Harris-Laplace算法
    • 实验过程
      • 实验1:Harris角点检测手动实现
      • 实验2:使用MATLAB内置函数
      • 实验3:Harris-Laplace多尺度检测
    • 实验结果
      • 结果1:Harris角点响应图
      • 结果2:手动实现Harris角点检测
      • 结果3:OpenCV Harris角点检测
      • 结果4:Harris-Laplace多尺度角点检测
      • 结果5:算法对比
    • 总结

摘要

角点是图像中重要的局部特征点,广泛应用于图像匹配、目标识别、运动跟踪等领域。本实验实现了Harris角点检测和Harris-Laplace多尺度角点检测两种算法,验证了角点检测的有效性和多尺度特征的稳定性。实验结果表明,Harris算法能够有效检测图像中的角点特征,而Harris-Laplace算法则在多尺度空间中检测角点,具有更好的尺度不变性。

原理

1. 角点定义

角点是图像中两条边缘的交点,或者说是局部窗口沿各方向移动都能检测到灰度变化明显的点。角点具有以下特征:

  • 局部特征明显
  • 对旋转、平移不变
  • 计算简单,检测效率高

2. Harris角点检测算法

Harris角点检测基于图像局部自相关性。对于图像I ( x , y ) I(x,y)I(x,y),在点( x , y ) (x,y)(x,y)处平移( u , v ) (u,v)(u,v)后的灰度变化为:

E ( u , v ) = ∑ x , y w ( x , y ) [ I ( x + u , y + v ) − I ( x , y ) ] 2 E(u,v) = \sum_{x,y} w(x,y) [I(x+u, y+v) - I(x,y)]^2E(u,v)=x,yw(x,y)[I(x+u,y+v)I(x,y)]2

通过泰勒展开,可以表示为:

E ( u , v ) ≈ [ u , v ] M [ u v ] E(u,v) \approx [u, v] M \begin{bmatrix} u \\ v \end{bmatrix}E(u,v)[u,v]M[uv]

其中M MM是自相关矩阵:

M = ∑ x , y w ( x , y ) [ I x 2 I x I y I x I y I y 2 ] M = \sum_{x,y} w(x,y) \begin{bmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \end{bmatrix}M=x,yw(x,y)[Ix2IxIyIxIyIy2]

Harris角点响应函数定义为:

R = det ⁡ ( M ) − k ⋅ trace ( M ) 2 R = \det(M) - k \cdot \text{trace}(M)^2R=det(M)ktrace(M)2

其中:

  • det ⁡ ( M ) = λ 1 λ 2 \det(M) = \lambda_1 \lambda_2det(M)=λ1λ2是矩阵的行列式
  • trace ( M ) = λ 1 + λ 2 \text{trace}(M) = \lambda_1 + \lambda_2trace(M)=λ1+λ2是矩阵的迹
  • k kk是经验常数,通常取0.04~0.06

R RR大于阈值时,该点被认为是角点。

3. Harris-Laplace算法

Harris-Laplace算法是对Harris角点检测的多尺度扩展,主要步骤包括:

  1. 构建尺度空间:在不同尺度上计算Harris角点响应
  2. 尺度归一化:使用尺度归一化的LoG算子进行尺度选择
  3. 特征点选择:选择在空间和尺度上都达到极值的点

尺度归一化的LoG响应为:

∣ L o G ( σ ) ∣ = σ 2 ∣ L x x + L y y ∣ |LoG(\sigma)| = \sigma^2 |L_{xx} + L_{yy}|LoG(σ)=σ2Lxx+Lyy

实验过程

实验1:Harris角点检测手动实现

使用MATLAB代码实现Harris角点检测:

function[posr,posc]=Harris1(in_image,a)% 功能:检测图像的Harris角点% 输入:in_image-待检测的RGB图像% a-角点响应参数,取值范围为0.04到0.06% 把RGB图像转换为灰度图像in_image=rgb2gray(in_image);ori_im=double(in_image);%%%%%%计算图像在x和y方向的梯度%%%%%%fx=[-101];Ix=filter2(fx,ori_im);fy=[-1;0;1];Iy=filter2(fy,ori_im);%%%%%%计算两个方向的梯度乘积%%%%%%Ix2=Ix.^2;Iy2=Iy.^2;Ixy=Ix.*Iy;%%%%%%使用高斯函数对梯度乘积进行加权%%%%%%h=fspecial('gaussian',[77],2);Ix2=filter2(h,Ix2);Iy2=filter2(h,Iy2);Ixy=filter2(h,Ixy);%%%%%%计算每个像素的Harris响应值%%%%%%fori=1:heightforj=1:width M=[Ix2(i,j)Ixy(i,j);Ixy(i,j)Iy2(i,j)];R(i,j)=det(M)-a*(trace(M))^2;endend

实验2:使用MATLAB内置函数

% 生成角点度量矩阵并进行检测C=cornermetric(I,'Harris');corner_peaks=imregionalmax(C);corner_idx=find(corner_peaks==true);

实验3:Harris-Laplace多尺度检测

functionpoints=harrislaplace(img)% 功能:提取Harris-Laplace角点% 尺度参数sigma_begin=1.5;sigma_step=1.2;sigma_nb=13;% 第一部分:提取Harris角点fori=1:sigma_nb s_I=sigma_array(i);s_D=0.7*s_I;% 计算Harris响应k=0.06;cim=(Ix2.*Iy2-Ixy.^2)-k*(Ix2+Iy2).^2;end% 第二部分:Laplace变换% 尺度归一化LoG响应laplace_snlo(:,:,i)=s_L*s_L*imfilter(img,fspecial('log',floor(6*s_L+1),s_L));

实验结果

结果1:Harris角点响应图



图中展示了Harris角点响应值的热力图,响应值越高的区域表示角点可能性越大。

结果2:手动实现Harris角点检测



使用手动实现的Harris算法检测角点,红色标记表示检测到的角点位置。

结果3:OpenCV Harris角点检测



使用OpenCV内置Harris角点检测函数的结果对比。

结果4:Harris-Laplace多尺度角点检测



Harris-Laplace算法在不同尺度上检测角点,圆圈大小表示特征尺度。

结果5:算法对比


对比了不同角点检测算法的效果,包括手动Harris、OpenCV Harris和Harris-Laplace。

总结

本实验成功实现了Harris角点检测和Harris-Laplace多尺度角点检测算法,得出以下结论:

  1. Harris角点检测
  • 计算简单,检测效率高
  • 对旋转、平移具有不变性
  • 对尺度变化敏感
  1. Harris-Laplace算法
  • 具有尺度不变性
  • 在多尺度空间检测特征点
  • 计算复杂度较高
  1. 应用建议
  • 对于固定尺度的图像匹配,Harris算法是高效的选择
  • 对于需要尺度不变性的应用,如目标识别,应选择Harris-Laplace算法

超级学长@科研实验室简介:工程光学物理光学智能优化算法信号处理图像处理机器视觉深度学习神经网络等领域实验搭建与实验数据分析等,程序开发、光学相关实验开展、课题选题与科研/论文指导等均可私信交流


http://www.jsqmd.com/news/523266/

相关文章:

  • Java中如何使用枚举类型表示固定常量
  • 北京移动GPON光猫连接参数
  • STM32事件与中断的硬件级对比:如何用EXTI触发ADC和定时器(附电路图分析)
  • 《Python程序设计与算法基础教程》P41部分练习题解答
  • ESP32Time库详解:RTC时间管理与嵌入式本地化实践
  • Spring AI RAG Pipeline 深度分析
  • 一个b/s的方案有几种选择
  • WPF新手村教程(六)— 新手村BOSS战前准备(命令)
  • 国标GB28181视频汇聚平台EasyCVR智慧社区全场景可视化管控与智能安防实践
  • 2025-2026年AI营销智能体公司推荐:应对市场波动与预算压力的智能决策伙伴盘点 - 品牌推荐
  • DM8数据库容灾避坑手册:从备份恢复到应急方案的全套操作实录(含PSEG_RECV参数详解)
  • C盘空间告急?保姆级教程:为Kali WSL2搬家到D盘并安装kali-linux-large工具包
  • 中小企业数字化转型,优先选 RPA 还是 AI Agent?:2026企业自动化架构选型深研
  • C语言游戏开发:Pygame、SDL、OpenGL深度解析
  • RecyclerView Demo - Android列表组件详解
  • SEO_ 内容营销中如何自然融合SEO关键词的策略
  • 网络协议分析(CTF 入门博客)
  • 2026年集装箱翻转机厂家推荐:山东金贯通用机械有限公司,移动式集装箱翻转机/双车道集装箱翻转机厂家精选 - 品牌推荐官
  • 国产CRM真实体验如何?2026年十大用户推荐CRM系统排行 - SaaS软件-点评
  • Java类间变量共享与进度更新的实现策略
  • 2026食品/餐饮虫控新选择:景隆智能灭蝇灯,用数据终结蝇害困扰 - 速递信息
  • keil将ANSI编码模式改为UTF-8编码模式方法
  • 用Anaconda玩转D2L教材:手把手教你同步李沐AI课程实验环境(Python3.8.5版)
  • 面向对象(下)
  • 基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(简单实现)
  • SEO_掌握关键词研究的正确方法,驱动SEO流量增长
  • 2025-2026年数字化咨询公司推荐:战略规划与组织效能提升口碑机构盘点 - 品牌推荐
  • 2026年电磁式振动台渠道推荐,梵码仪器专业服务东莞苏州客户 - 工业品网
  • 本科生计算机视觉科研入门:顶刊盘点、里程碑论文与学习路线
  • Ansys Rocky 离散DEM颗粒流仿真,核心供应商推荐 - 品牌2026