设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2037|回复: 0

matlab练习程序(BRIEF描述子)

[复制链接]

10

主题

101

金钱

149

积分

入门用户

发表于 2019-12-16 15:41:41 | 显示全部楼层 |阅读模式

BRIEF特征全称:Binary Robust Independent Elementary Features。是一种能够快速计算图像特征描述符的方法,同样能够降低特征匹配的时间。
算法计算步骤如下:
1.首先对一张图像计算其特征点,这里就用matlab自带的harris角点检测了,harris代码细节可以参考这一篇博客。
2.对图像进行高斯滤波,这里选用9*9矩阵,主要是为了去除随机噪点。
3.以特征点为中心,取SxS的邻域窗口。在窗口内随机选取一对(两个)点,比较二者像素的大小,进行如下二进制赋值。
1.png
其中,p(x),p(y)分别是随机点x=(u1,v1),y=(u2,v2)的像素值。
4.选窗口内随机点对的策略有以下五种方法,推荐第二种:
2.png
对应的邻域随机点对图像如下(一条线段的两个端点是一对):
3.png
5.最终就得到了多组二进制编码,后续匹配可以利用编码距离来确定特征点的相似度。
一定要注意的是后续匹配要选用相同的点对,所以这组点对是要保留的。
matlab代码如下:
  1. clear all;
  2. close all;
  3. clc;

  4. R = 48;     %特征邻域窗口直径
  5. K = 9;      %高斯滤波半径
  6. N = 256;    %特征位数

  7. img=imread('lena.jpg');
  8. imshow(img)
  9. [h,w]=size(img);

  10. p = detectHarrisFeatures(img);          %系统自带的检测harris角点
  11. p = p.Location;

  12. p = p(p(:,1)>R & p(:,1)<h-R & ...       %将太靠近边界的特征点去掉,避免邻域随机点越界
  13.     p(:,2)>R & p(:,2)<w-R,:);

  14. H=fspecial('gaussian',[K K],2);         %高斯平滑
  15. img=imfilter(img,H,'replicate');

  16. s = normrnd(0,R/5,N,4);                 %生成邻域中随机点对GII
  17. figure;                                 %显示一下
  18. for i=1:N
  19.    plot(s(i,1:2),s(i,3:4));   
  20.    hold on;
  21. end

  22. tao = zeros(length(p),N);
  23. for i=1:length(p)           %生成所有特征点的brief描述子   
  24.     px = floor(p(i,:) + s(:,1:2));      %懒得插值提亚像素值了,直接最邻近
  25.     py = floor(p(i,:) + s(:,3:4));
  26.    
  27.     for j=1:N
  28.         if img(px(j,2),px(j,1)) < img(py(j,2),py(j,1))
  29.             tao(i,j) = 1;
  30.         else
  31.             tao(i,j) = 0;
  32.         end
  33.     end
  34.    
  35.     img(floor(p(i,2)),floor(p(i,1))) = 255;
  36. end
  37. figure;                 %显示harris角点
  38. imshow(img,[])

  39. figure;                 %显示一下描述子
  40. imshow(tao,[])
复制代码


结果如下:
原图:
4.jpg
Harris特征点:
5.jpg
邻域随机点对,这里使用GII:
6.png
BRIEF描述子,这里可视化了:
7.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表