傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)

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

算法计算步骤如下:

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

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

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

291ba33b5ecf44be64bd5b3375c6df49.png

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

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

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第1张图片

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

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第2张图片

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(:,)

p(:,)>R & p(:,)

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,[])

结果如下:

原图:

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第3张图片

Harris特征点:

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第4张图片

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

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第5张图片

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

傅里叶描述子 matlab,matlab练习程序(BRIEF描述子)_第6张图片

Brief描述子

一.Brief算法 1.基本原理 BRIEF是2010年的一篇名为的文章中提出,B ...

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

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

BRIEF 特征描述子

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

matlab练习程序(SUSAN检测)

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

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

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

SIFT算法:特征描述子

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

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

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

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

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

(一)ORB描述子提取

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

随机推荐

C#内存管理与垃圾回收

垃圾回收还得从根说起,就像生儿育女一样. 根:根是一个位置,存放一个指针,该指针指向托管堆中的一个对象,或是一个空指针不指向任何对象,即为null.根存在线程栈或托管堆中,大部分的跟都在线程栈上,因为 ...

slidingmenu + fragment 左右菜单滑动

content_frame.xml

nginx 一般配置实例 静态页面

# 使用的用户和组 user www www; # 指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍,例如两个四核CPU,则总核数为8) worker_processes 8; # 指定错误日 ...

Android事件侦听器回调方法浅谈

http://developer.51cto.com/art/201001/180846.htm Android事件侦听器作为视图View类的接口,其中包含有不少回调方法,比如:onClick():o ...

Spring 使用介绍(七)—— Spring事务

一.数据库事务概述 1.基本介绍 事务必需满足ACID(原子性.一致性.隔离性和持久性)特性,缺一不可: 原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做 ...

C++11 std::call_once:保证函数在任何情况下只调用一次

std::call_once的作用是很简单的, 就是保证函数或者一些代码段在并发或者多线程的情况下,始终只会被执行一次.比如一些init函数,多次调用可能导致各种奇怪问题. 给个例子: #includ ...

node webpack4.6简单配置

package.json { "name": "his-web", "version": "0.0.0", " ...

zzw原创_根据某一文件复制出大量固定位数后缀名的递增的文件

1.trre.sh   :根据某一文件复制出大量固定位数后后缀递增的文件.   如将 SPINFO_190516_20170109.001 复制成SPINFO_190516_20170109.002  ...

Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率. 我之前的HTTP开发是用ap ...

问答项目---登陆账号密码登陆做AJAX异步校验

异步验证管理员帐号方法: /* 异步验证管理员帐号 */ public function checkAccount(){ if(!IS_AJAX){echo "页面不存在";die ...

你可能感兴趣的:(傅里叶描述子,matlab)