介绍
这篇文章主要介绍了opencv3/c++如何实现冲浪特征检测,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
冲浪即加快健壮的功能加速鲁棒特征;
冲浪可以用于对象定位和识别,人脸识别,3 d重建,对象跟踪和提取兴趣点等。
<强>工作原理:强>
1,选择图像中POI(兴趣点)海赛矩阵;
2,在不同的尺度空间发现关键点,非最大信号压制;
3,发现特征点方法,旋转不变性要求,
4,生成特征向量;
类冲浪中成员函数创建()参数说明:
static Ptr,创建( double hessianThreshold=100//冲浪中使用的黑森关键点检测器的阈值 int nOctaves =,,,//关键点检测器将使用的金字塔组数量 int nOctaveLayers =, 3//高斯金字塔每个组内图像的层数 bool extended =,假的,,//扩展描述符标志(真正的使用扩展的128个元素的描述符,错误的使用64个元素的描述符) bool upright =,假//旋转的特征标志(真不计算方向,假计算方向) );
函数检测()用来检测图像或图像集中的关键点。
基类Feature2D中成员函数检测()参数说明:
void 检测(, InputArray 形象,//图像 CV_OUT std:: vector,,要点、//检测到的关键点,(在图像集中关键点(我)是在图像[我]中检测到的一组关键点) InputArray 面具=noArray(),//指定在哪里寻找关键点的掩码(必须是在感兴趣区域中具有非零值的8位整数矩阵) );
<>强函数drawKeypoints()的参数说明:强>
void drawKeypoints (, InputArray 形象,,//源图像 const std:: vector,,要点、,//来自源图像的关键点 InputOutputArray outImage//输出图像 const Scalar&,颜色=标量::(1),,//关键点的颜色 int 旗帜=DrawMatchesFlags: DEFAULT //设置绘图功能的标志 );
函数drawKeypoints()用来绘制关键点。
<强>冲浪特征检测示例:强>
# include# include using namespace 简历; using namespace 简历:xfeatures2d; Mat src; int minHessian =, 50; void trackBar (int, void *); int main () {=,,src  imread (“E:/图片/图片/bdb.jpg"); ,if (src.empty ()) ,{ ,,printf(“还要not load image \ n"); return 才能;1; ,} ,namedWindow (“input", WINDOW_AUTOSIZE); ,imshow (“input", src); ,namedWindow (“output", WINDOW_AUTOSIZE); ,createTrackbar (“minHessian",“output",, minHessian,, 500,, trackBar); ,waitKey (0); ,return 0; } void trackBar (int, void *) { ,Mat dst; ,//冲浪特征检测 ,Ptr detector =,冲浪:创建(minHessian); ,std:: vector
感谢你能够认真阅读完这篇文章,希望小编分享的“opencv3/c++如何实现冲浪特征检测”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
opencv3/c++如何实现冲浪特征检测