⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 siftread.m

📁 sift的matlab代码
💻 M
字号:
function [frames,descriptors] = siftread(file) % SIFTREAD Read Lowe's SIFT implementation data files%   [FRAMES, DESCRIPTORS] = READSIFT(FILE) reads the frames and the%   descriptors from the specified file. The function reads files%   produced by Lowe's SIFT implementation.%     %   FRAMES and DESCRIPTORS have the same format used by SIFT(). %%   REMARK. Lowe's and our implementations use a silightly different%   convention to store the orientation of the frame. When the file%   is read, the orientation is changed to match our convention.%%   See also SIFT().% AUTORIGHTS% Copyright (c) 2006 The Regents of the University of California.% All Rights Reserved.% % Created by Andrea Vedaldi% UCLA Vision Lab - Department of Computer Science% % Permission to use, copy, modify, and distribute this software and its% documentation for educational, research and non-profit purposes,% without fee, and without a written agreement is hereby granted,% provided that the above copyright notice, this paragraph and the% following three paragraphs appear in all copies.% % This software program and documentation are copyrighted by The Regents% of the University of California. The software program and% documentation are supplied "as is", without any accompanying services% from The Regents. The Regents does not warrant that the operation of% the program will be uninterrupted or error-free. The end-user% understands that the program was developed for research purposes and% is advised not to rely exclusively on the program for any reason.% % This software embodies a method for which the following patent has% been issued: "Method and apparatus for identifying scale invariant% features in an image and use of same for locating an object in an% image," David G. Lowe, US Patent 6,711,293 (March 23,% 2004). Provisional application filed March 8, 1999. Asignee: The% University of British Columbia.% % IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY% FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,% INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND% ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN% ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF% CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR% A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"% BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE% MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.verbosity=0 ;g = fopen(file, 'r');if g == -1    error(['Could not open file ''', file, '''.']) ;end[header, count] = fscanf(g, '%d', [1 2]) ;if count ~= 2    error('Invalid keypoint file header.');endK = header(1) ; DL = header(2) ;if(verbosity > 0)	fprintf('%d keypoints, %d descriptor length.\n', K, DL) ;end%creates two output matricesP = zeros(4,K) ;L = zeros(DL,K) ;%parse tmp.keyfor k = 1:K	% Record format: i,j,s,th	[record, count] = fscanf(g, '%f', [1 4]) ; 	if count ~= 4		error(...			sprintf('Invalid keypoint file (parsing keypoint %d)',k) );	end	P(:,k) = record(:) ;		% Record format: descriptor	[record, count] = fscanf(g, '%d', [1 DL]) ;	if count ~= DL		error(...			sprintf('Invalid keypoint file (parsing keypoint %d)',k) );	end	L(:,k) = record(:) ;	endfclose(g) ;L=double(L) ;P(1:2,:)=flipud(P(1:2,:)) ; % i,j -> x,yframes=[ P(1:2,:) ; P(3,:) ; -P(4,:) ] ;descriptors = L ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -