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. iOS开发WKWebView 返回H5上级页面

    #pragma mark ---- 点击事件 -(void)leftTapClick:(UITapGestureRecognizer *)sender{ //判断是否能返回到H5上级页面 if (se ...

  2. Android 项目优化(二):启动页面优化

    一.启动页黑屏的问题 1.1 问题现象描述 Android App 启动页面黑屏的问题,现象表现为:Android 开发 App 启动时若没有做特殊处理的话,会出现一瞬间的白屏现象.即使启动页界面就加 ...

  3. SpringCloud之Hystrix:集群容错框架

    分布式环境中,可能会有一些被依赖的服务会失效,影响系统的稳定运行.Hystrix通过添加延迟阈值以及容错的逻辑,以控制分布式系统间组件的交互.Hystrix通过隔离服务间的访问点.停止它们之间的级联故 ...

  4. 如何快速找到多个字典中的公共键(key)

    from random import randint, sample #sample随机取样 d1 = {k: randint(1, 4) for k in sample('abcdefgh', ra ...

  5. 设置自动获取IP和DNS

    问题阐述 设置ipv4的自动获取时遇到一个问题,ip和dns自动获取可以确认设置,但是全局时就是报错,回头去看ipv4的ip和dns也还是原来的样子 由于一直使用的都是自动获取,很少会有主动设置ip或 ...

  6. WCF、WebAPI、WCFREST、WebService的区别

    目录导航: 1. WCF 2. WebAPI 3. WebService 4. WCFREST 5. 如何选择WCF.WebAPI.WCFREST.WebService 1.WCF 这个是基于SOAP ...

  7. sql server使用sp_executesql返回拼接字符串里面的输出参数

    问题: 今天一同事请教博主,他拼接了一个语句,select表格形式数据,然后使用@@rowcount获取到行数. 但他又有这样特别的需求:想只获取行数而不返回表格数据结果,因为是while循环,不想返 ...

  8. CodeForces - 1265D(贪心+暴力)

    题意 https://vjudge.net/problem/CodeForces-1265D a个0,b个1,c个2,d个3,问是否存在一种排列方案使得任意相邻两数之差==1 思路 分类讨论太麻烦了, ...

  9. 构造函数new运算符进行了哪些操作

    new 运算符 1,实例化一个对象 2,将构造函数prototype对象赋值给对象__proto__属性 3,将对象作为函数this传进去,函数有return 并且是对象的话,就直接返回return的 ...

  10. sql书写和执行顺序

    (8)SELECT (9)DISTINCT<select_list> (1)FROM <left_table> (3)<join_type> JOIN<rig ...