OpenCV学习笔记(四十六)——FAST特征点检测features2D
来源:互联网 发布:双反相机知乎 编辑:程序博客网 时间:2024/05/22 14:29
转载自:http://blog.csdn.net/yang_xian521/article/details/7411438
特征点检测和匹配是计算机视觉中一个很有用的技术。在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用。这一次先介绍特征点检测的一种方法——FAST(features from accelerated segment test)。很多传统的算法都很耗时,而且特征点检测算法只是很多复杂图像处理里中的第一步,得不偿失。FAST特征点检测是公认的比较快速的特征点检测方法,只利用周围像素比较的信息就可以得到特征点,简单,有效。
FAST特征检测算法来源于corner的定义,这个定义基于特征点周围的图像灰度值,检测候选特征点周围一圈的像素值,如果候选点周围领域内有足够多的像素点与该候选点的灰度值差别够大,则认为该候选点为一个特征点。
其中I(x)为圆周上任意一点的灰度,I(p)为圆心的灰度,Ed为灰度值差得阈值,如果N大于给定阈值,一般为周围圆圈点的四分之三,则认为p是一个特征点。
为了获得更快的结果,还采用了额外的加速办法。如果测试了候选点周围每隔90度角的4个点,应该至少有3个和候选点的灰度值差足够大,否则则不用再计算其他点,直接认为该候选点不是特征点。候选点周围的圆的选取半径是一个很重要的参数,这里我为了简单高效,采用半径为3,共有16个周边像素需要比较。为了提高比较的效率,通常只使用N个周边像素来比较,也就是大家经常说的FAST-N。我看很多文献推荐FAST-9,作者的主页上有FAST-9、FAST-10、FAST-11、FAST-12,大家使用比较多的是FAST-9和FAST-12。上个图说明的更形象一些
OpenCV里对FAST的使用也非常简单,先声明一组特征点,构建FAST特征检测,接下来调用detect函数检测图像中的特征点,最后把特征点绘制到图片上。上代码说的清楚些
#include <opencv2/core/core.hpp>#include <opencv2/features2d/features2d.hpp>#include <opencv2/highgui/highgui.hpp>#include <vector>using namespace cv;void main(){Mat image;image = imread("church01.jpg");// vector of keyPointsstd::vector<KeyPoint> keyPoints;// construction of the fast feature detector objectFastFeatureDetector fast(40);// 检测的阈值为40// feature point detectionfast.detect(image,keyPoints);drawKeypoints(image, keyPoints, image, Scalar::all(255), DrawMatchesFlags::DRAW_OVER_OUTIMG);imshow("FAST feature", image);cvWaitKey(0);}
最后上一张效果图
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
- FAST特征点检测features2D
- FAST特征点检测features2D
- FAST特征点检测features2D
- OpenCV中feature2D学习——FAST特征点检测
- FAST特征点检测——opencv
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)
- OPENCV FAST特征点检测
- OpenCV学习笔记(五十三)——新版本2.4.2简介&FREAK和ORB特征描述子效果对比features2d
- OpenCV中feature2D学习——FAST特征点检测与SIFT/SURF/BRIEF特征提取与匹配
- 特征点匹配——FAST特征点检测
- 中文无法显示
- 面试总结与分析(一)
- 第1条:考虑用静态工厂方法代替构造方法
- C# 里面的 #region 是什么意思?
- C/C++/MFC
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- linux网络通信再学习
- Android Native C 之 Helloworld的四种编译方式_转载
- 智慧书-永恒的处世经典格言:41-80
- int与CString,char*与CString,float与CString之间的相互转化
- Asp.net下获取HyperLinkField值的问题
- 站内信设计思路
- CreateCompatibleDC用法
- Linux服务器的安全