角点检测方法

        看了将近十来天的OPENCV了,无论是从官方文档,还是learning opencv,还是看各论坛,心里总有种感觉是:无法把自己看的知识联系在一起,感觉都是各有特色功能的函数,可是这些各有特色功能的函数怎么组合在一起,实现什么样的功能就不得而知了。

        下面从角点的角度来讲讲吧  --(要说的是有些并非是本人所写,觉得别人有的地方写的经典就复制下来了)

         使用函数 cornerHarris 通过 Harris-Stephens方法检测角点;

         我们到底要角点干什么??????????????

         下面我来回答这个问题,在计算机视觉中,我们需要比对两张图片,靠什么匹配,靠直方图,为啥????? 直方图包含哪些信息,如果需要快速的匹配,我们需呀哪些关键信息?

         一张图片在你看来,最大的印象是什么??????????回答是色彩,那变为gray图了呢,给你的最大的印象是什么呢???????你可能一时回答不上来,那就是边缘。什么边缘,不同灰度之间的边缘,那怎么获得这些不同的边缘??????常年canny,阀值化,阀值化后怎么办呢??还是不知到怎么比对,还需要哪些特战呢,再一步细化,那就到了 角点斑点(感兴趣的区域)

   

         下面我们就可以回答怎么去比对两张图片了

            1---边缘  (边缘的获取方法:canny,开环或者闭环,再加上阀值,或者sobel之类算法)

            2---角点    (cornerHarris,开环,闭环,再加上十字图形  菱形处理后, absdiff ,再去阀值,harris角点检测,Shi-Tomasi角点检测,FAST角点检测,尺度不变surf检测,尺度不变sift检测)

            3---斑点       最生动形象的说话就是女孩子脸长了雀斑( LoG算子:SIFT算法  Blob特征检测算子

       

Harris角点检测

当一个窗口在图像上移动,在平滑区域如图(a),窗口在各个方向上没有变化。在边缘上如图(b),窗口在边缘的方向上没有变化。在角点处如图(c),窗口在各个方向上具有变化。Harris角点检测正是利用了这个直观的物理现象,通过窗口在各个方向上的变化程度,决定是否为角点。

将图像窗口平移[u,v]产生灰度变化E(u,v)

由:, 得到:

对于局部微小的移动量 [u,v],近似表达为:

其中M是 2*2 矩阵,可由图像的导数求得:

E(u,v)的椭圆形式如下图:

 

定义角点响应函数 R 为:

Harris角点检测算法就是对角点响应函数R进行阈值处理:R > threshold,即提取R的局部极大值。

http://blog.csdn.net/xiaowei_cqu/article/details/7805206 可以参考这篇文档 写的很不错

 

是时候好好总结下自己走过的路。
原文地址:https://www.cnblogs.com/haoxing990/p/4575615.html