opencv开发笔记(十五):特征检测十大方法之SURF算法

来源:互联网 发布:sql 统计每小时记录 编辑:程序博客网 时间:2024/05/18 02:08

SURF算法原理:

1、构建hession矩阵构造高斯金字塔尺度空间,使特征点具备尺度无关性

2、利用非极大值抑制初步确定特征点

3、精确定位极值点

4、选取特征点的主方向

5、构建surf特征点描述算子

// SURF算法特征点检测.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
//#include "opencv2/nonfree/nonfree.hpp"
#include <iostream>
using namespace cv;
using namespace std;

  //-----------------------------------【main( )函数】--------------------------------------------
  //   描述:控制台应用程序的入口函数,我们的程序从这里开始执行
  //-----------------------------------------------------------------------------------------------
int main(int argc, char** argv)
{
//【0】改变console字体颜色    
system("color 2F");

//【1】载入源图片并显示
Mat srcImage1 = imread("E:\\Pictures\\1.jpg", 1);
Mat srcImage2 = imread("E:\\Pictures\\2.jpg", 1);
if (!srcImage1.data || !srcImage2.data)//检测是否读取成功
{
printf("读取图片错误,请确定目录下是否有imread函数指定名称的图片存在~! \n"); return false;
}
imshow("原始图1", srcImage1);
imshow("原始图2", srcImage2);

//【2】定义需要用到的变量和类
int minHessian = 400;//定义SURF中的hessian阈值特征点检测算子
//SurfFeatureDetector detector(minHessian);//定义一个SurfFeatureDetector(SURF) 特征检测类对象
//std::vector<KeyPoint> keypoints_1, keypoints_2;//vector模板类是能够存放任意类型的动态数组,能够增加和压缩数据

  //【3】调用detect函数检测出SURF特征关键点,保存在vector容器中
//detector.detect(srcImage1, keypoints_1);
//detector.detect(srcImage2, keypoints_2);
/*----------------------------------------------------------nonfree模块丢失用不了SurfFeatureDetector接口-------------------------------------------------------*/

vector<KeyPoint> keypoints_1, keypoints_2;
Ptr<FeatureDetector> dector = FastFeatureDetector::create(minHessian);
dector->detect(srcImage1, keypoints_1);
dector->detect(srcImage2, keypoints_2);


//【4】绘制特征关键点.
Mat img_keypoints_1; Mat img_keypoints_2;
drawKeypoints(srcImage1, keypoints_1, img_keypoints_1, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
drawKeypoints(srcImage2, keypoints_2, img_keypoints_2, Scalar::all(-1), DrawMatchesFlags::DEFAULT);


//【5】显示效果图
imshow("特征点检测效果图1", img_keypoints_1);
imshow("特征点检测效果图2", img_keypoints_2);

waitKey(0);
return 0;
}






阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩子读一年级拼音读不好要怎么办 4个月的婴儿恶心干呕怎么办 生了小孩后胆汁酸偏高怎么办 9个月宝宝吃盐了怎么办 两个月宝宝母乳拉大便太稀怎么办呀 两个月的宝宝不拉大便怎么办 两个月宝宝五天没拉大便怎么办 4个月宝宝不拉大便怎么办 2个月宝宝3天没拉大便怎么办 宝宝拉不出大便老是憋的哭怎么办 九个月的宝宝不爱吃水果怎么办 顺产侧切伤口发炎化脓有臭味怎么办 一岁宝宝感冒发烧39度怎么办 宝宝二岁半了只吃水果不吃饭怎么办 8个月小孩发烧39度怎么办 咳嗽吃了很多药都不见效果怎么办 生完孩子半个月奶水越来越少怎么办 买到了坏了的水果商家不赔怎么办 小孩奶不够吃又不吃奶粉怎么办 10个月的宝宝便秘很严重怎么办 四岁的宝宝突然不怎么吃饭怎么办 1岁7个月宝宝突然不爱吃饭怎么办 宝宝发烧好了之后不吃辅食怎么办 吃母乳的宝宝不喝奶粉怎么办 奶水不足宝宝又不喝奶粉怎么办 6个月宝宝断奶哭闹不用奶瓶怎么办 小孩不爱吃饭怎么办该吃些什么 二个月宝宝只认母乳不喝牛奶怎么办 满月宝宝只认奶粉不认母乳怎么办 宝宝四个月只认奶瓶不认母乳怎么办 新生儿只认奶瓶不认母乳怎么办 7个月宝宝不吃辅食怎么办 8个月小孩不吃辅食怎么办 9个月小孩不吃辅食怎么办 十一个月宝宝拉肚子拉水怎么办 小孩好动上课也坐不住会怎么办 幼儿大班关于环保的手抄报怎么办 捷达车打开丝位子风扇总转怎么办 小班个案分析:好动的孩子该怎么办 孩子突然过于的兴奋不睡觉是怎么办 刚出生的宝宝听力未通过怎么办