Matlab实现Harris角点检测算法

article/2025/10/8 2:03:10

角点

一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点,也可以是在某些属性上强度最大或者最小的孤立点、线段的终点,或者是曲线上局部曲率最大的点。在实践中,通常大部分称为角点检测的方法检测的都是兴趣点,而不是独有的角点。因此,如果只要检测角点的话,需要对检测出来的兴趣点进行局部检测,以确定出哪些是真正的角点。

目前的角点检测算法可归纳为3类:基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。对灰度图像、二值图像、边缘轮廓曲线的角点检测算法进行综述,分析了相关的算法,并对各种检测算法给出了评价。(源自百度百科)

Harris角点检测算法步骤

  1. 利用水平、竖直差分算子对图像每个像素进行滤波以求得Ix、Iy,进而求得M中的四个元素的值(可以使用filter2,也可以使用imfilter,不过后者需要转double类型,因为det输入为double型矩阵)

在这里插入图片描述

  1. 对M的四个元素进行高斯平滑滤波,为的是消除一些不必要的孤立点和凸起,得到新的矩阵M(M实际上只能算得上是2x2矩阵,Ix2等代表图像变换矩阵中的点)
  2. 计算M对应每个像素的角点响应函数R的值,R的不同值代表的意义如下:

在这里插入图片描述
4. 取适当阈值,当R(i,j)大于该阈值,且为邻域中最大值,则认为该点为角点。

Matlab实现

clc;clear;close all;img=imread('test.png');
subplot(121),imshow(img),title('原图');
img_gray=rgb2gray(img);psf=fspecial('gaussian',[5,5],1);
Ix=filter2([-1,0,1],img_gray);
Iy=filter2([-1,0,1]',img_gray);
Ix2=filter2(psf,Ix.^2);
Iy2=filter2(psf,Iy.^2);
Ixy=filter2(psf,Ix.*Iy);[m,n]=size(img_gray);
R=zeros(m,n);
max=0;
for i=1:mfor j=1:nM=[Ix2(i,j),Ixy(i,j); Ixy(i,j),Iy2(i,j)];R(i,j)=det(M)-0.05*(trace(M))^2;if R(i,j)>maxmax=R(i,j);endend
endthresh=0.1;%阈值可调
tmp=zeros(m,n);
neighbours=[-1,-1;-1,0;-1,1;0,-1;0,1;1,-1;1,0;1,1];
for i=2:m-1for j=2:n-1if R(i,j)>thresh*maxfor k=1:8if R(i,j)<R(i+neighbours(k,1),j+neighbours(k,2))break;endendif k==8tmp(i,j)=1;endendend
endsubplot(122),imshow(img),title('角点检测');
hold on;
for i=2:m-1for j=2:n-1if tmp(i,j)==1plot(j,i,'rx')endend
end
hold off;      

代码效果如下:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/rILoFkEa.shtml

相关文章

Harris 角点检测原理及实现

1. 图像中角点定义 沿各个方向&#xff0c;图像灰度均发生变化&#xff1b; 2.Harris原理 Harris中也是根据角点定义经角点定义&#xff0c;Harris中使用该像素点周围像素块和其周围的其它像素块的相关性刻画角点&#xff0c;相关性用平方差之和进行计算(SSD)&#xff0c;SS…

基于Python手动实现Harris角点检测

最近在上数字图像处理课程&#xff0c;需要使用Python手动编写Harris角点检测算法&#xff0c;但是网上几乎没有找到手动编写的&#xff0c;只能手敲。 同时作为自己的第一篇博客&#xff0c;在这里记录一下。 一、Harris角点检测 原理&#xff08;略&#xff09; 可以参考博…

【OpenCV入门教程之十六】OpenCV角点检测之Harris角点检测

本系列文章由浅墨_毛星云 出品&#xff0c;转载请注明出处。 文章链接&#xff1a; http://blog.csdn.net/poem_qianmo/article/details/29356187 作者&#xff1a;毛星云&#xff08;浅墨&#xff09; 微博&#xff1a;http://weibo.com/u/1723155442 知乎&#xff1a;ht…

Harris 角点检测(Harris Corner Detection)(OpenCV实现)

匹配问题 Harris角点检测是Chris Harris和Mike Stephens在1988年提出的。主要用于运动图像的追踪。当时的普遍想法是利用边缘进行追踪&#xff0c;但是当相机或物体运动时你不知道朝哪个方向&#xff0c;相机的几何变换也是未知的&#xff0c;所以边缘匹配很难达到预期的效果。…

图像处理(九)——Harris角点检测

实现Harris角点检测算法&#xff0c;并与OpenCV的cornerHarris函数的结果进行比较。 特征点在图像中一般有具体的坐标&#xff0c;并具有某些数学特征&#xff0c;如局部最大或最小灰度、以及某些梯度特征等。角点可以简单的认为是两条边的交点。如下图所示&#xff1a; 在各个…

Harris角点检测 及 Matlab实验

目录 1 基础知识 1.1 图像变化的类型 1.2 提取点特征的作用 1.3 什么是好的角点检测算法&#xff1f; 2 Harris 角点检测 2.1 Harris角点检测基本思想 2.2 Harris角点检测&#xff1a;数学描述 3 总结 4 Matlab 实验 参考资料 角点是图像重要的特征&#xff0c;对图像…

Harris的角点检测和特征匹配

一.特征检测&#xff08;提取&#xff09; 基于特征的图像配准方法是图像配准中最常见的方法之一。它不是直接利用图像像素值&#xff0c;二十通过像素值导出的符号特征&#xff08;如特征点、特征线、特征区域&#xff09;来实现图像配准&#xff0c;因此可以克服利用灰度信息…

Harris角点及Shi-Tomasi角点检测

一、角点定义 有定义角点的几段话&#xff1a; 1、角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法&#xff0c;广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。也称为特征点检测。 角点通常被定义为两条边的交点&#xff0…

Harris角点检测算法详解

Harris角点算法 特征点检测广泛应用到目标匹配、目标跟踪、三维重建等应用中&#xff0c;在进行目标建模时会对图像进行目标特征的提取&#xff0c;常用的有颜色、角点、特征点、轮廓、纹理等特征。现在开始讲解常用的特征点检测&#xff0c;其中Harris角点检测是特征点检测的基…

Harris角点检测算子

Harris角点检测算子是于1988年由CHris Harris & Mike Stephens提出来的。在具体展开之前&#xff0c;不得不提一下Moravec早在1981就提出来的Moravec角点检测算子。 1.Moravec角点检测算子 Moravec角点检测算子的思想其实特别简单&#xff0c;在图像上取一个W*W的“滑动窗…

特征检测之Harris角点检测

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达特征点又叫兴趣点或者角点。常被用于目标匹配&#xff0c;目标跟踪&#xff0c;三维重建等应用中。点特征主要指图像中的明显点&#xff0c;如突出的角点、边缘端点、极值…

Harris角点检测原理分析

主要参考了&#xff1a;http://blog.csdn.net/yudingjun0611/article/details/7991601 Harris角点检测算子 本文将该文拷贝了过来&#xff0c;并做了一些数学方面的补充&#xff0c;以方便对数学已经生疏的小伙伴们参考理解。由于补充的内容还挺多&#xff0c;所以还是将本文标…

【理解】经典角点检测算法--Harris角点

目录 什么是角点角点检测算法的原始思想&#xff1a;Harris角点检测原理Harris角点算法的基本步骤实践&#xff1a;Harris角点检测可能会用到的OpenCV API&#xff1a;手写API:1.展示图片&#xff1a;2.手写Harris特征&#xff1a;3.手写非极大值抑制&#xff1a;4.在原图标注角…

角点检测(Harris角点检测法)

博主联系方式&#xff1a; QQ:1540984562 QQ交流群&#xff1a;892023501 群里会有往届的smarters和电赛选手&#xff0c;群里也会不时分享一些有用的资料&#xff0c;有问题可以在群里多问问。 目录 原理讲解【1】为何选取角点作为特征&#xff1f;【2】角点的定义&#xff1a…

Harris角点检测原理详解

关于角点的应用在图像处理上比较广泛&#xff0c;如图像匹配(FPM特征点匹配)、相机标定等。网上也有很多博客对Harris角点检测原理进行描述&#xff0c;但基本上只是描述了算法流程&#xff0c;而其中相关细节并未作出解释&#xff0c;这里我想对有些地方做出补充说明&#xff…

OpenCV——Harris角点检测

目录 一、Harris角点检测二、C代码三、python代码四、结果展示1、原始图像2、Harris角点 一、Harris角点检测 角点原理来源于人对角点的感性判断&#xff0c;即图像在各个方向灰度有明显变化。算法的核心是利用局部窗口在图像上进行移动判断灰度发生较大的变化&#xff0c;所以…

Harris角点检测

目录 一.基本原理 1.基本思想 2.数学模型 二.实现代码 三.实验结果与分析 1.场景一&#xff1a;纹理平坦场景 2.场景二&#xff1a;多水平边缘场景 3.场景三&#xff1a;角点丰富场景 四.实验总结 一.基本原理 1.基本思想 判断图像的角点&#xff0c;可以利用卷积窗…

harris角点检测原理

目录 1、角点概述 2、数学知识 3、Harris角点检测基本原理 4、优化改进 1、角点概述 如果一个点在任意方向的一个微小变动都会引起灰度很大的变化&#xff0c;那么我们就把它称之为角点&#xff0c;也就是一阶导数(即灰度图的梯度)中的局部最大所对应的像素点就是角点。在现…

计算机视觉(角点检测)- 1 - Harris角点检测

计算机视觉&#xff08;角点检测&#xff09;- 1 - Harris角点检测 学习前言一、Harris角点检测  1、什么是角点&#xff1f;  2、Harris角点检测的基本原理&基本思想  3、Harris角点检测的数学表达  4、获取点数据后&#xff0c;计算 I x &#xff0c; I y I_x&#x…

Visual Studio的sln工程设置VTK、ITK项目

Visual Studio的sln工程设置VTK、ITK项目 最近在学习使用VTK和ITK&#xff0c;使用Visual Studio新建Qt项目时发现项目不是使用过去使用的CMake组织&#xff0c;而是使用的Visual Studio默认的.sln文件&#xff0c;便学习了一下使用Visual Studio的sln工程设置VTK、ITK项目&am…