Harris Corner网上已经有很多的资料了,但它也是我读研究生后读的第一篇论文,对我有一种特别的意义。

这篇文章我想从几个方面来讲解Harris Corner,一是Harris Corner的思想,二是Harris Corner重要公式的推导,三是从图像的层面直观的观察每一个公式的结果。本人能力有限,如有纰漏,万望指正。Any advice and suggestions will be greatly appreciated。

我们的目的是在图像上找到角点。那我们在图像上设置一个小窗,然后我们将小窗再多个方向进行微小的移动,比对朝每个方向移动后的小窗与原始小窗中的数据,可能产生以下三种情况:
1.原始小窗在一个平面上,则小窗无论朝哪个方向进行移动后,改变的数值都很小;
2.原始小窗在一条边缘上,则小窗朝边缘的线性方向移动时,改变很小,但朝别的方向进行移动时,改变很大;
3.原始小窗在一个角点上,则无论它朝任何方向进行移动,都会有较大的改变
 
我们用数学公式对这个思想进行描述:
 
这是一个自相关函数,x,y代表的是小窗中原始图像的位置,detaX和detaY表示偏移量,w是一个平滑函数
 
中括号内部的函数表示对原始小窗和移动后的小窗进行距离的计算,对多个方向的小窗进行有一个高斯加权求和,得到一个响应值
 
对这个公式进行推导。
引入二元泰勒展开式,则

带入自相关函数
只观察大括号内
再带入自相关函数
 
 
考虑α,β为M矩阵的两个特征值:
如果两个特征值都很小,则说明窗口再各个方向变换都不大,说明它在平面内;
如果其中一个特征值很大,而另一个很小,则说明窗口在一个方向变化小,而另一个方向变换较大,说明窗口在边缘上
如果两个特征值都比较大,而且近似,那么说明这个窗口无论朝什么方向移动都比较大,说明窗口在角点上
 
可以知道矩阵的迹和矩阵的行列式可由下式算出
为了简化计算我们计算
 
当R大于设定阀值时,我们就认为当前点是角点。
 
 
考虑:
 
X,Y我们可以理解为图像在x和y方向上的一阶导,对于图像,我们可以用卷积模板进行卷积操作来实现
针对原始图像
对应的偏导图像X,Y分别为
这是一个简单的边缘检测。
 
针对自先关函数进行变形可得到
其中,
A,B,C对应M矩阵中的A,B,C
 
接着对图像M矩阵进行运算
 
得到相应图片
 
 
Harris计算特征值来判别角点,因此对方向有自适应性,所以能够具有旋转不变性。
但是针对不同尺度的角点,Harris由于并没有改变图片和模板大小,所以不能检测到别的尺度的角点。
还有一点,阀值R对图片亮度的变化不敏感,改变阀值能够很大程度的影响检测到的角点数目。

Harris Corner的更多相关文章

  1. Harris Corner(Harris角检测)

    在做图像匹配时,常需要对两幅图像中的特征点进行匹配.为了保证匹配的准确性,所选择的特征必须有其独特性,角点可以作为一种不错的特征. 那么为什么角点有其独特性呢?角点往往是两条边缘的交点,它是两条边缘方 ...

  2. 角点检测和匹配——Harris算子

    一.基本概念 角点corner:可以将角点看做两个边缘的交叉处,在两个方向上都有较大的变化.具体可由下图中分辨出来: 兴趣点interest point:兴趣点是图像中能够较鲁棒的检测出来的点,它不仅 ...

  3. 寻找Harris、Shi-Tomasi和亚像素角点

    Harris.Shi-Tomasi和亚像素角点都是角点,隶属于特征点这个大类(特征点可以分为边缘.角点.斑点). 一.Harris角点检测是一种直接基于灰度图像的角点提取算法,稳定性较高,但是也可能出 ...

  4. OpenCV教程(43) harris角的检测(1)

          计算机视觉中,我们经常要匹配两幅图像.匹配的的方式就是通过比较两幅图像中的公共特征,比如边,角,以及图像块(blob)等,来对两幅图像进行匹配.      相对于边,角更适合描述图像特征, ...

  5. OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  6. openCV2马拉松第19圈——Harris角点检測(自己实现)

    计算机视觉讨论群162501053 转载请注明:http://blog.csdn.net/abcd1992719g/article/details/26824529 收入囊中 使用OpenCV的con ...

  7. 【Computer Vision】角点检测和匹配——Harris算子

    一.基本概念 角点corner:可以将角点看做两个边缘的交叉处,在两个方向上都有较大的变化.具体可由下图中分辨出来: 兴趣点interest point:兴趣点是图像中能够较鲁棒的检测出来的点,它不仅 ...

  8. OpenCV计算机视觉学习(13)——图像特征点检测(Harris角点检测,sift算法)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 前言 ...

  9. cv_prj2

    Computer Vision Project 2 – Harris Corner Detector 姓名: 王兴路 学号: 3140102282 指导老师: 宋明黎 2016-12-16 19:30 ...

随机推荐

  1. JVM笔记6-垃圾回收概述

    JVM进行垃圾回收时要考虑哪的问题如下: 1.如何判定对象为垃圾对象? 1.引用计数法:在对象中添加一个引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,引用失效的时候,计数器的值就-1, ...

  2. 实用技巧:如何通过IP地址进行精准定位

    在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办??? 偶然间发现百度地图有高精度IP定位API ...

  3. Python中if __name__=="__main__" 语句在调用多进程Process过程中的作用分析

    2018年2月27日 于创B515 引言 最近准备学习一下如何使用Python中的多进程.在翻看相关书籍.网上资料时发现所有代码都含有if __name__=="__main__" ...

  4. DQL、DML、DDL、DCL

    二. SQL语言的分类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句 ...

  5. 转:客户端session与服务端session

    会话(Session)跟踪是Web程序中常用的技术,用来 跟踪用户的整个会话 .常用的会话跟踪技术是Cookie与Session. Cookie通过在客户端记录信息确定用户身份 , Session通过 ...

  6. JavaScript的预编译和执行

    JavaScript引擎,不是逐条解释执行javascript代码,而是按照代码块一段段解释执行.所谓代码块就是使用<script>标签分隔的代码段. 整个代码块共有两个阶段,预编译阶段和 ...

  7. Redis多服务器负载均衡的实现

    集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性. 上图是三个主服务 ...

  8. spring中自定义Event事件的使用和浅析

    在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring.spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务.Filter过滤器. intercep ...

  9. mysql常用基础操作语法(三)~~对数据的增删改操作【命令行模式】

    1.插入单条数据:insert into tablename(字段名1,字段名2,...) values(值1,值2,...); 从图中可以看出,插入时不需要每个字段都有值(在没有相关的约束前提下), ...

  10. Java类型转化报错

    Java类型转化报错 报错如下: java.lang.ClassCastException:java.util.HashMap cannot be cast to java.util.List.