• 大小: 198KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Matlab
  • 标签: 特征提取  matlab  sift  

资源简介

matlab脚本,可实现特征提取。 SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),“尺度”的直观第一印象就是大小,尺度不变就是和图片的大小没有关系,简单的SIFT的理解是最后检测出来的特征点匹配适用于所有尺寸的图像

资源截图

代码片段和文件信息

function hh = display_keypoints( pos scale orient varargin )
 
% 功能:在原始图像上显示特征点
% 输入:
% pos – 特征点的位置矩阵.
% scale –特征点的尺度矩阵.
% orient –特征点的主方向向量.
% 输出:
% hh-返回向量的线句柄.

hold on;
 
alpha = 0.33; 
beta = 0.33; 
autoscale = 1.5; 
plotarrows = 1; 
sym = ‘‘;
 
filled = 0;
ls = ‘-‘;
ms = ‘‘;
col = ‘‘;
 
varin = nargin - 3;
 
while (varin > 0) & isstr(varargin{varin})
   vv = varargin{varin};
   if ~isempty(vv) & strcmp(lower(vv(1))‘f‘)
      filled = 1;
      nin = nin-1;
   else
      [lcmmsg] = colstyle(vv);
      if ~isempty(msg) 
         error(sprintf(‘Unknown option “%s“.‘vv));
      end
      if ~isempty(l) ls = l; end
      if ~isempty(c) col = c; end
      if ~isempty(m) ms = m; plotarrows = 0; end
      if isequal(m‘.‘) ms = ‘‘; end % Don‘t plot ‘.‘
      varin = varin-1;
   end
end
 
if varin > 0
   autoscale = varargin{varin};
end
   
x = pos(:1);
y = pos(:2);
u = scale.*cos(orient);
v = scale.*sin(orient);
 
if prod(size(u))==1 u = u(ones(size(x))); end
if prod(size(v))==1 v = v(ones(size(u))); end
 
if autoscale
  u = u*autoscale; v = v*autoscale;
end
 
ax = newplot;
next = lower(get(ax‘NextPlot‘));
hold_state = ishold;
 
x = x(:).‘; y = y(:).‘;
u = u(:).‘; v = v(:).‘;
uu = [x;x+u;repmat(NaNsize(u))];
vv = [y;y+v;repmat(NaNsize(u))];
 
h1 = plot(uu(:)vv(:)[col ls]);
 
if plotarrows
  hu = [x+u-alpha*(u+beta*(v+eps));x+u; ...
        x+u-alpha*(u-beta*(v+eps));repmat(NaNsize(u))];
  hv = [y+v-alpha*(v-beta*(u+eps));y+v; ...
        y+v-alpha*(v+beta*(u+eps));repmat(NaNsize(v))];
  hold on
  h2 = plot(hu(:)hv(:)[col ls]);
else
  h2 = [];
end
 
if ~isempty(ms) 
  hu = x; hv = y;
  hold on
  h3 = plot(hu(:)hv(:)[col ms]);
  if filled set(h3‘markerfacecolor‘get(h1‘color‘)); end
else
  h3 = [];
end
 
if ~hold_state hold off view(2); set(ax‘NextPlot‘next); end
 
if nargout>0 hh = [h1;h2;h3]; end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-06-23 09:47  4.4节测试图及程序\
     文件       24064  2011-10-27 11:24  4.4节测试图及程序\1.6节程序运行说明.doc
     文件        2014  2012-02-05 20:59  4.4节测试图及程序\display_keypoints.m
     文件         277  2012-02-05 20:57  4.4节测试图及程序\gaussian_filter.m
     文件         360  2012-02-05 21:00  4.4节测试图及程序\integralimage.m
     文件      197020  2015-06-16 10:45  4.4节测试图及程序\lena.bmp
     文件         324  2015-06-18 10:37  4.4节测试图及程序\main.m
     文件        1207  2012-02-05 20:57  4.4节测试图及程序\pgmread.m
     文件        1807  2012-02-05 20:58  4.4节测试图及程序\pnmReadHeader.m
     文件         393  2012-02-05 20:58  4.4节测试图及程序\resizeImageFig.m
     文件       21317  2015-06-16 15:07  4.4节测试图及程序\SIFT.asv
     文件       21297  2012-02-05 20:56  4.4节测试图及程序\SIFT.m

评论

共有 条评论