博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV教程(47) sift特征和surf特征
阅读量:6260 次
发布时间:2019-06-22

本文共 1385 字,大约阅读时间需要 4 分钟。

     在前面三篇教程中的几种角检测方法,比如harris角检测,都是旋转无关的,即使我们转动图像,依然能检测出角的位置,但是图像缩放后,harris角检测可能会失效,比如下面的图像,图像放大之前可以检测出为harris角,但是图像放大后,则变成了边,不能检测出角了。所以,harris角是缩放相关的。

     在paper Distinctive Image Features from Scale-Invariant Keypoints中D.Lowe提出了SIFT算法,该算法是缩

放无关的。

sift算法原理参考下面两篇链接。

论文的原文可见:

OpenCV中使用sift特征的代码如下:

// Read input image

image= cv::imread("../church01.jpg",0);

keypoints.clear();

// Construct the sift feature detector object
cv::SiftFeatureDetector sift(
    0.03,  // feature threshold
    10.);  // threshold to reduce
// sensitivity to lines

// Detect the SURF features

sift.detect(image,keypoints);

cv::drawKeypoints(image,keypoints,featureImage,cv::Scalar(255,255,255),cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

// Display the corners

cv::namedWindow("SIFT Features");
cv::imshow("SIFT Features",featureImage);

surf算法可以看作加速的sift算法。原理参考

opencv中使用surf的代码为:

// Read input image

cv::Mat image= cv::imread("../church03.jpg",0);
// vector of keypoints
std::vector<cv::KeyPoint> keypoints;
keypoints.clear();
// Construct the SURF feature detector object
cv::SurfFeatureDetector surf(2500);
// Detect the SURF features
surf.detect(image,keypoints);

cv::Mat featureImage;

cv::drawKeypoints(image,keypoints,featureImage,cv::Scalar(255,255,255),cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

// Display the corners

cv::namedWindow("SURF Features");
cv::imshow("SURF Features",featureImage);

完整代码:工程FirstOpenCV50

转载地址:http://ycqsa.baihongyu.com/

你可能感兴趣的文章
Kotlin:娶妻当娶贤,嫁夫则嫁能
查看>>
设计模式初探之建造者模式(Builder)
查看>>
菜鸟学网络之 —— 长连接和短连接
查看>>
DDFE 技术周刊(第十八期)2017.3.14
查看>>
安得广厦千万间,大赚天下寒士俱欢颜
查看>>
这是一份优美的信息图,吴恩达点赞的deeplearning.ai课程总结
查看>>
去中心化并不是比特币的关键和核心,真的有用才是
查看>>
0629 - 基本完成 iPaste 的 Pin 管理
查看>>
经典:头像与昵称描述的位置组合
查看>>
【CSS模块化之路2】webpack中的Local Scope
查看>>
浙江移动容器云基于 Dragonfly 的统一文件分发平台生产实践
查看>>
「每日一瞥
查看>>
java 线程池
查看>>
排序算法总结
查看>>
python模块学习(二)
查看>>
近期的爬虫工作杂谈
查看>>
机器学习之 k 近邻
查看>>
canvas核心技术-如何绘制图形
查看>>
netty源码分析之pipeline(二)
查看>>
面试:讲讲 Android 的事件分发机制
查看>>