【图像匹配】基于Harris算法的图像匹配,matlab实现

embedded/2024/9/22 7:51:46/

       博主简介:matlab图像代码项目合作(扣扣:3249726188

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        本次案例是基于基于Harris算法图像匹配,用matlab实现。

 一、案例背景和算法介绍

        前面的博客文章我们介绍图像处理的一个重要领域算法:图像匹配图像匹配的算法比较多,有基于SIFT、SURF、Harris等特征的匹配算法,这次介绍的算法是Harris匹配算法。前期介绍的算法如下:

        SIFT匹配:基于SIFT算法的图像匹配(【图像匹配】基于SIFT算法的图像匹配,matlab实现-CSDN博客)

       SURF匹配:基于SURF算法的图像匹配(【图像匹配】基于SURF算法的图像匹配,matlab实现-CSDN博客)

        下面简要介绍一下Harris算法

Harris角点检测算法的基本原理‌

Harris角点检测算法是由‌Chris Harris和‌Mike Stephens在1988年提出的,它通过计算图像中每个像素点的自相关矩阵来确定角点。该算法使用一个固定窗口在图像上滑动,比较滑动前后的灰度变化,如果灰度变化显著,则认为该位置为角点。

Harris角点检测算法的步骤

  1. 将图像转换为灰度图像。
  2. 计算图像的梯度,获取像素的水平和垂直梯度。
  3. 计算每个像素的二阶矩阵(自相关矩阵)。
  4. 计算每个像素的响应函数值(角点响应函数)。
  5. 应用非极大值抑制,抑制非极大值点。
  6. 根据阈值筛选出角点。

Harris角点检测算法的优点

  • 旋转不变性‌:Harris角点检测算法具有旋转不变性,即旋转后的图像仍然能够准确检测到角点。
  • 对亮度和对比度的变化不敏感‌:该算法对亮度和对比度的变化具有较好的鲁棒性。
  • 计算简单‌:Harris角点检测算法的计算过程相对简单,且提取的角点特征均匀合理,性能稳定。

Harris角点检测算法的应用场景

  • 摄像机标定‌:通过检测图像中的角点,可以用于摄像机的标定,提高摄像机的精度。
  • 虚拟场景重建‌:在虚拟场景重建中,角点检测可以帮助构建三维模型。
  • 运动估计‌:在运动估计中,角点检测可以用于跟踪物体的运动。
  • 图像配准‌:在图像配准中,角点检测可以帮助实现图像之间的对齐。

     关于Harris算法的网上资料也是非常多,这里同样不做详细介绍。这里概述一下匹配的主要步骤,跟SIFT匹配类似,主要是特征算法不同,后续匹配步骤是一致的:

        1、获取Harris特征,得到特征之后,接下来就是匹配

        2、计算特征距离值,如符合一定规则(如设置距离少于某个值),则认为符合初步匹配

        3、利用RANSAC算法去除误匹配

        主要的matlab主函数代码如下:

clear
clc
close all% 读取原图
img1 = imread('hall1.jpg');
img2 = imread('hall2.jpg');% 显示
figure
subplot(1,2,1)
imshow(img1);
title('原图1');
subplot(1,2,2)
imshow(img2);
title('原图2');% 转换为double数据
img1Dup=rgb2gray(img1);
img1Dup=double(img1Dup);
img2Dup=rgb2gray(img2);
img2Dup=double(img2Dup);% Harris算法角点提取
[locs1] = Harris(img1Dup);
[locs2] = Harris(img2Dup);% 初步匹配,用 NCC 算法寻找匹配点
[matchLoc1 matchLoc2] =  findCorr(img1Dup,img2Dup,locs1, locs2);% 用 RANSAC 去除误匹配点
[H inlierIdx] = estHomography(img1Dup,img2Dup,matchLoc2',matchLoc1');

       下面看看具体的matlab实现效果。

        完成匹配后,可以根据匹配效果做图像拼接操作了,这个后续的算法再做介绍。

二、Matlab实现效果

        原图:

初步匹配效果:

去除误匹陪效果:


http://www.ppmy.cn/embedded/114933.html

相关文章

GDPU Andriod移动应用 Activity

移动应用开发入门级必看,用活动打造属于你的页面。 重要的更新公告 !!!GDPU的小伙伴,感谢大家的支持,希望到此一游的帅哥美女能有所帮助。本学期的前端框架及移动应用,采用专栏订阅量达到50才开…

IO 多路转接之 select

文章目录 IO 多路转接之 select1、初识 select2、select 函数及其参数解释3、select 函数返回值4、select 的执行过程5、socket 就绪条件5.1、读就绪5.2、写就绪5.3、异常就绪 5、select 的特点6、select 的缺点7、select 使用实例7.1、只检测检测标准输入输出7.2、使用 select…

系统架构笔记-2-计算机系统基础知识

知识要点-2.6计算机语言 UML 对系统架构的定义是系统的组织结构,包括系统分解的组成部分以及它们的关联性、交互机制和指导原则等,提供系统设计的信息。 具体有以下 5 个系统视图: 1. 逻辑视图:也称为设计视图,表示…

网址匹配正则表达式(python实现)

网址匹配正则表达式(python实现) 正则表达式部分如下: pattern re.compile(r^(?:http|ftp)s?:// # http:// or https:// or ftp:// or ftps://r(?:\S(?::\S*)?)? # 可选的 用户:密码 部分r(?: # 开…

R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

Vue+nodejs+express旅游景区门票预订网站的设计与实现 8caai前后端分离

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是…

嵌入式 开发技巧和经验分享

文章目录 前言嵌入式 开发技巧和经验分享目录1.1嵌入式 系统的 定义1.2 嵌入式 操作系统的介绍1.3 嵌入式 开发环境1.4 编译工具链和优化1.5 嵌入式系统软件开发1.6 嵌入式SDK开发2.1选择移植的系统-FreeRtos2.2FreeRtos 移植步骤2.3 系统移植之中断处理2.4系统移植之内存管理2…

Spring Boot实现:Java免税商品购物商城全攻略

第一章 绪论 1.1 课题开发的背景 从古至今,通过书本获取知识信息的方式完全被互联网络信息化,但是免税商品优选购物商城,对于购物商城工作来说,仍然是一项非常重要的工作。尤其是免税商品优选购物商城,传统人工记录模式…