图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)
David Lowe(SIFT 的提出者)
0. 图像金字塔变换(matlab)
matlab 对图像金字塔变换接口的支持(impyramid
),十分简单好用。
其支持在reduce
和expand
两种方式的变换,分别是成比例的缩小和放大。
% 加载图像数据到内存
I = imread('cameraman.tif'); size(I)% reduce ==> {2, 4, 8}
I1 = impyramid(I, 'reduce'); size(I1)
I2 = impyramid(I1, 'reduce'); size(I2)
I3 = impyramid(I2, 'reduce'); size(I3)figure
a1 = subplot(1, 4, 1); imshow(I),
xs = get(a1, 'xlim'); ys = get(a1, 'ylim');
a2 = subplot(1, 4, 2); imshow(I1),
set(a2, 'xlim', xs, 'ylim', ys);
a3 = subplot(1, 4, 3); imshow(I2),
set(a3, 'xlim', xs, 'ylim', ys);
a4 = subplot(1, 4, 4); imshow(I3)
set(a4, 'xlim', xs, 'ylim', ys);I1 = impyramid(I, 'expand'); size(I1)
I2 = impyramid(I1, 'expand'); size(I2)
I3 = impyramid(I2, 'expand'); size(I3)figure
a1 = subplot(1, 4, 1); imshow(I3),
xs = get(a1, 'xlim'); ys = get(a1, 'ylim');
a2 = subplot(1, 4, 2); imshow(I2),
set(a2, 'xlim', xs, 'ylim', ys);
a3 = subplot(1, 4, 3); imshow(I1),
set(a3, 'xlim', xs, 'ylim', ys);
a4 = subplot(1, 4, 4); imshow(I)
set(a4, 'xlim', xs, 'ylim', ys);
1. SIFT
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关 scale 和 orientation 的描述子(descriptor)得到特征并进行图像特征点匹配,获得了良好效果。
整个算法分为以下几个部分:
1、构建尺度空间
这是一个初始化操作,尺度空间理论目的是模拟图像数据的多尺度特征。
高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间(多尺度特征自然在尺度空间中定义)定义为:
L(x,y,σ)=G(x,y,σ)⋆I(x,y)二维的高斯卷积核的形式为:G(x,y,σ)=12πσ2e−(x2+y2)/2σ2
σ 大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的 σ 值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分核与图像卷积生成。
D(x,y,σ)==(G(x,y,kσ)−G(x,y,σ))⋆I(x,y)L(x,y,kσ)−L(x,y,σ)图像金字塔的建立:对于一幅图像I,建立其在不同尺度(scale)的图像,也成为子八度(octave),这是为了scale-invariant,也就是在任何尺度都能够有对应的特征点,第一个子八度的scale为原图大小,后面每个octave为上一个octave降采样的结果,即原图的1/4(长宽分别减半),构成下一个子八度(高一层金字塔)。
2、LoG 近似 DoG 找到关键点<检测DOG尺度空间极值点>
为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。 一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图所示。
3、除去不好的特征点
SIFT 特征提取分析
转载于:https://www.cnblogs.com/mtcnn/p/9422850.html
图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)相关推荐
- OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...
- Image Pyramid(图像金字塔)
图像处理邻域中比较常用的一种方法,image pyramid, 也叫图像金字塔.就是将图像进行一层一层的下采样,图像金字塔是为了构建图像的多尺度,让模型能够更好的适应图像的尺度变化. 图像金字塔实际上 ...
- ORB_SLAM2中特征提取之图像金字塔尺度不变性理解
本文参考:泡泡机器人提供的带注释的ORB_SLAM2源代码 转载本文请注明出处: https://blog.csdn.net/RobotLife/article/details/87194017 在o ...
- 使用Python和OpenCV构建图像金字塔
使用Python和OpenCV的图像金字塔 1. 效果图 2. 什么是图像金字塔? 3. 依赖 4. 源码 参考 这篇博客将介绍如何使用两种方法构造图像金字塔. 使用Python和OpenCV构建金字 ...
- 尺度空间与图像金字塔(多分辨率)超级细致
文章目录 尺度空间 什么是尺度空间(scale space) 为什么需要尺度空间 高斯核 图像金字塔 什么是分辨率 为什么需要多分辨率 多尺度和多分辨率 图像金字塔 高斯金字塔 SIFT 参考 Why ...
- 尺度空间与图像金字塔(一)
文章目录 尺度空间 什么是尺度空间(scale space) 为什么需要尺度空间 高斯核 图像金字塔 什么是分辨率 为什么需要多分辨率 多尺度和多分辨率 图像金字塔 高斯金字塔 SIFT 参考 Why ...
- 图像金字塔和高斯金字塔
一:图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔实际上是一张图片在不同尺度下的集合,即原图的上采样和下采样集合.金 ...
- 【OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
[OpenCV 例程200篇]31. 图像金字塔(cv2.pyrDown) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更 ...
- Python+OpenCV:图像金字塔
Python+OpenCV:图像金字塔 理论 通常情况下,我们使用固定大小的图像.但在某些情况下,我们需要处理(相同的)不同分辨率的图像. 例如,当搜索图像中的某些东西时,比如脸,我们不确定该物体在图 ...
- 图像金字塔:概念及实现
文章目录 图像金字塔:概念和实现 1. 图像金字塔的概念 2. 图像金字塔的实现方式 3. 基于OpenCV的图像金字塔实现 参考资料 图像金字塔:概念和实现 首先补充一下分辨率的概念:图像分辨率指图 ...
最新文章
- 图文并茂详解iptables 防火墙工作原理及知识点
- linux显示存储与标定不符,找到了linux分区顺序错乱修复方法
- 神策数据全新服务体系——打造用户行为分析领域服务最高标准
- 【NLP】ALL in BERT:一套操作冲进排行榜首页
- js 设备条形码字体_蚌埠食品袋激光打码机设备-青岛博泰格睿特
- iPhone4 FaceTime 联通官方教程
- UE4学习-虚幻4帮助手册、通过蓝图实现动画效果、添加时间轴、添加声音、C++和蓝图事件关联
- 省选+NOI 第三部分 树上问题
- 14 MySQL--事务函数与流程控制
- oracle rownum使用与分页
- 《iOS 6核心开发手册(第4版)》——1.13节秘诀:从滚动视图中拖动
- websocket 如何知道对方断开_在爱情里你知道该如何和对方相处吗?
- 如何实现大批量UKEY远程连接管控?
- 2022-2027年中国酒店及酒店管理市场竞争态势及行业投资前景预测报告
- 2021小米笔记本pro14和小新pro14有什么区别 哪个好详细性能配置对比
- HTML5新特性知识点总结
- pdf水印去除和word转换
- vue读取json文件
- Ping原理Linux,ping实现原理
- office 文档解析
热门文章
- java不能修改表_java中不可修改列表的类型是什么
- 湖南网络推广浅析外链怎么发才会更快的收录?
- 网站过度优化该怎样解决?
- php写账户冻结_线上开户指南(首次入金2万,账户总净资产不得低于1万,交易佣金万三,最低25,合单,没平台费)入金后才会有账户号...
- commonjs是什么_第一步:面试官让我解释什么是Common.js和ES6模块化
- python变量需要声明吗_python中可以声明变量类型吗
- Android Studio自定义视图无法预览
- 开发日记-20190902 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 7
- 开发日记-20190725 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 15
- 开发日记-20190715 关键词 读书笔记 《Perl语言入门》Day 9