BRIEF特征全称:Binary Robust Independent Elementary Features。是一种能够快速计算图像特征描述符的方法,同样能够降低特征匹配的时间。

算法计算步骤如下:

1.首先对一张图像计算其特征点,这里就用matlab自带的harris角点检测了,harris代码细节可以参考这一篇博客

2.对图像进行高斯滤波,这里选用9*9矩阵,主要是为了去除随机噪点。

3.以特征点为中心,取SxS的邻域窗口。在窗口内随机选取一对(两个)点,比较二者像素的大小,进行如下二进制赋值。

其中,p(x),p(y)分别是随机点x=(u1,v1),y=(u2,v2)的像素值。

4.选窗口内随机点对的策略有以下五种方法,推荐第二种:

对应的邻域随机点对图像如下(一条线段的两个端点是一对):

5.最终就得到了多组二进制编码,后续匹配可以利用编码距离来确定特征点的相似度。

一定要注意的是后续匹配要选用相同的点对,所以这组点对是要保留的。

matlab代码如下:

clear all;
close all;
clc; R = ; %特征邻域窗口直径
K = ; %高斯滤波半径
N = ; %特征位数 img=imread('lena.jpg');
imshow(img)
[h,w]=size(img); p = detectHarrisFeatures(img); %系统自带的检测harris角点
p = p.Location; p = p(p(:,)>R & p(:,)<h-R & ... %将太靠近边界的特征点去掉,避免邻域随机点越界
p(:,)>R & p(:,)<w-R,:); H=fspecial('gaussian',[K K],); %高斯平滑
img=imfilter(img,H,'replicate'); s = normrnd(,R/,N,); %生成邻域中随机点对GII
figure; %显示一下
for i=:N
plot(s(i,:),s(i,:));
hold on;
end tao = zeros(length(p),N);
for i=:length(p) %生成所有特征点的brief描述子
px = floor(p(i,:) + s(:,:)); %懒得插值提亚像素值了,直接最邻近
py = floor(p(i,:) + s(:,:)); for j=:N
if img(px(j,),px(j,)) < img(py(j,),py(j,))
tao(i,j) = ;
else
tao(i,j) = ;
end
end img(floor(p(i,)),floor(p(i,))) = ;
end
figure; %显示harris角点
imshow(img,[]) figure; %显示一下描述子
imshow(tao,[])

结果如下:

原图:

Harris特征点:

邻域随机点对,这里使用GII:

BRIEF描述子,这里可视化了:

参考:https://blog.csdn.net/hujingshuang/article/details/46910259

matlab练习程序(BRIEF描述子)的更多相关文章

  1. Brief描述子

    一.Brief算法 1.基本原理 BRIEF是2010年的一篇名为<BRIEF:Binary Robust Independent Elementary Features>的文章中提出,B ...

  2. Opencv Surf算子中keyPoints,描述子Mat矩阵,配对向量DMatch里都包含了哪些好玩的东东?

    Surf算法是一把牛刀,我们可以很轻易的从网上或各种Opencv教程里找到Surf的用例,把例程中的代码或贴或敲过来,满心期待的按下F5,当屏幕终于被满屏花花绿绿的小圆点或者N多道连接线条霸占时,内心 ...

  3. BRIEF 特征描述子

    Binary Robust Independent Elementary Features www.cnblogs.com/ronny 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128 ...

  4. matlab练习程序(SUSAN检测)

    matlab练习程序(SUSAN检测) SUSAN算子既可以检测角点也可以检测边缘,不过角点似乎比不过harris,边缘似乎比不过Canny.不过思想还是有点意思的. 主要思想就是:首先做一个和原图像 ...

  5. 基于HOG-3D的时空描述子

    作者提出一种新的基于局部描述子的行为识别算法.

  6. SIFT算法:特征描述子

    SIFT算法:DoG尺度空间生产  SIFT算法:KeyPoint找寻.定位与优化 SIFT算法:确定特征点方向  SIFT算法:特征描述子 目录: 1.确定描述子采样区域 2.生成描述子 2.1 旋 ...

  7. SIFT解析(三)生成特征描述子

    以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征.下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点. 下面好好说说如何来描述这些 ...

  8. (二)ORB描述子提取源码思路与实现

    ORBSLAM2中ORB特征提取的特点 ORBSLAM2中通过对OpenCV中的ORB特征点提取类进行修改,对图像进行分块提取,而后划分节点,使得每个节点中保存的特征点性能是该节点所有特征点中最好的. ...

  9. (一)ORB描述子提取

    ORBSLAM2中使用ORB描述子的方法 经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的.那么本文主要就讲特征点法的SLAM. 基于特征点法的视觉SLAM系统典型的有PT ...

随机推荐

  1. Android开发之OkHttp介绍

    要论时下最火的网络请求框架,当属OkHttp了.自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中 ...

  2. HDFS存入文件的整个流程

    本文结合HDFS的副本和分块从宏观上描述HDFS存入文件的整个流程.HDFS体系中包含Client.NameNode.DataNode.SeconderyNameode四个角色,其中Client是客户 ...

  3. 论文阅读:EGNet: Edge Guidance Network for Salient Object Detection

    论文地址:http://openaccess.thecvf.com/content_ICCV_2019/papers/Zhao_EGNet_Edge_Guidance_Network_for_Sali ...

  4. acwing 851. spfa求最短路 模板

    地址 https://www.acwing.com/problem/content/description/853/ 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数. 请你求出 ...

  5. 洛谷 UVA10226 Hardwood Species

    洛谷 UVA10226 Hardwood Species 洛谷评测传送门 题目描述 PDF 输入格式 输出格式 输入输出样例 输入 #1复制 输出 #1复制 题目翻译: 给定若干字符串,输出格式为:( ...

  6. java之可变个数的形参

    //采用数组形参来定义方法 public static void test (int a, String[] books); //采用可变个数形参来定义方法 public static void te ...

  7. netty源码解析(4.0)-21 ByteBuf的设计原理

        io.netty.buffer包中是netty ByteBuf的实现.ByteBuf是一个二进制缓冲区的抽象接口,它的功能有: 可以随机访问.顺序访问. 支持基本数据类型(byte, shor ...

  8. Python中7个不一样的代码写法

    打印index 对于一个列表,或者说一个序列我们经常需要打印它的index,一般传统的做法或者说比较low的写法: 更优雅的写法是多用enumerate 两个序列的循环 我们会经常对两个序列进行计算或 ...

  9. boostrap 学习笔记

    bootstrap : 是全球最受欢迎的前端组件库,用于开发响应式布局.移动设备优先的 WEB 项目. 用于项目样式的快速搭建,真的是..特别快.. 随便找两个cdn引用就能使用了. https:// ...

  10. ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

    使用orachk工具检查数据库实例的时候,发现报告里面有类似下面这样一些错误(最近有给Oracle 10g应用补丁PSU 10.2.0.5.180717,不清楚是这个产生的还是其他原因导致),使用脚本 ...