【问题标题】:feature extraction using vl_feat toolbox使用 vl_feat 工具箱进行特征提取
【发布时间】:2017-03-31 02:38:48
【问题描述】:
imshow(imread(a));
img = single(imread(a));
[f,d] = vl_phow(img);
perm = randperm(size(f,2)) ;
s = perm(1:50)
h1= vl_plotframe(f(:,s));
h2= vl_plotframe(f(:,s));
set(h1,'color','k','linewidth',3) ;
set(h2,'color','y','linewidth',2) ;
h3 = vl_plotsiftdescriptor(f(:,s),d(:,s)) ;
set(h3,'color','g') ;

但是当我尝试使用vl_plotsiftdescriptors 绘制它们时,它给出了一个错误。

谁 d 128x3692 uint8
f 4x3692 双

错误是:

D的行数与描述符的几何形状不匹配

有人可以帮我解决这个问题吗? 我做对了吗? 提前致谢。

【问题讨论】:

    标签: matlab computer-vision feature-extraction sift vlfeat


    【解决方案1】:

    问题出在一行

    h3 = vl_plotsiftdescriptor(f(:,s),d(:,s)) ;
    

    使用f(:,s)d(:,s),您正在加载fs 中的s-th ,而VLFeat documentation 则表明

    D的每一列都是F中对应帧的描述符。

    所以要提取索引s 处的描述符,您必须调用

    h3 = vl_plotsiftdescriptor(f(s,:),d(s,:)) ;
    

    --

    补充说明:使用randperm的第二个参数(k),可以替换

    perm = randperm(size(f,2)) ;
    s = perm(1:50);
    

    s = randperm(size(f,2), 50);
    

    应该更快,因为您只生成 50 个随机数,而不是生成 size(f,2) 数字并丢弃其中的大部分。

    【讨论】:

      猜你喜欢
      • 2019-06-07
      • 2020-08-06
      • 2012-10-19
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2020-02-20
      • 2013-11-22
      相关资源
      最近更新 更多