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

博主简介: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主函数代码如下:

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实现效果

原图:

初步匹配效果:

去除误匹陪效果:

相关推荐
Matlab_ImagePro3 个月前
【GUI设计】基于Matlab的图像处理GUI系统(1),用matlab实现
gui设计·gui界面·matlab图像处理·gui图像处理系统·matlab gui·matlab图像处理gui·图像处理gui
Matlab_ImagePro3 个月前
【GUI设计】基于Matlab的图像处理GUI系统(2),matlab实现
gui界面·matlab图像处理·图像处理gui系统·图像gui设计·gui图像处理系统·matlab gui·gui图像系统
Matlab_ImagePro3 个月前
【图像匹配】基于SIFT算法的图像匹配,matlab实现
图像匹配·matlab图像处理·matlab图像匹配·匹配算法·sift算法·matlab sift·sift匹配
Matlab_ImagePro3 个月前
【图像检索】基于傅里叶描述子的形状特征图像检索,matlab实现
matlab图像处理·傅里叶描述子·matlab图像检索·形状特征图像检索·matlab傅里叶描述子·matlab 傅里叶描述子检索·matlab形状特征检索
Matlab_ImagePro3 个月前
【图像检索】基于Gabor特征的图像检索,matlab实现
matlab图像处理·gabor特征·matlab图像检索·gabor图像检索·matlab gabor检索·gabor变换·gabor特征图像检索
Matlab_ImagePro3 个月前
【图像匹配】基于‌墨西哥帽小波(Marr小波)算法的图像匹配,matlab实现
matlab图像处理·matlab图像匹配·墨西哥帽特征·marr小波特征·墨西哥帽小波特征匹配·墨西哥帽图像特征·墨西哥帽图像匹配
Matlab_ImagePro3 个月前
【磨皮美白】基于Matlab的人像磨皮美白处理算法,Matlab处理
matlab图像处理·磨皮美白·matlab磨皮·matlab美白·磨皮算法·matlab美白算法·matlab磨皮算法
Matlab_ImagePro3 个月前
【图像匹配】基于SURF算法的图像匹配,matlab实现
图像匹配·matlab图像处理·surf算法·surf匹配·matlab surf算法·matlab图像匹配·匹配算法
Matlab_ImagePro3 个月前
基于对数变换的图像美白增强,Matlab实现
matlab·matlab图像处理·图像美白·对数变换·美图算法·matlab图像美白