/usr/share/octave/site/m/vlfeat/toolbox/imop/vl_waffine.m is in octave-vlfeat 0.9.17+dfsg0-6build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | function varargout = vl_waffine(A,T,varargin)
% VL_WAFFINE Apply affine transformation to points
% Y = VL_WAFFINE(A,T,X) applies the affine transformatio (A,T) to points
% X. X contains one point per column.
%
% [Y1,Y2,...] = VL_WAFFINE(A,T,X1,X2,...) applies the affine
% transformation (A,T) to the points (X1,X2,...). Each array
% X1,X2,... contains one of the coordinates of the points.
%
% See also: VL_HELP().
% Copyright (C) 2007-12 Andrea Vedaldi and Brian Fulkerson.
% All rights reserved.
%
% This file is part of the VLFeat library and is made available under
% the terms of the BSD license (see the COPYING file).
if numel(varargin)==1
X = varargin{1} ;
[n,k] = size(X);
if n == 2
Y(1,:) = A(1,1)*X(1,:) + A(1,2)*X(2,:) + T(1) ;
Y(2,:) = A(2,1)*X(1,:) + A(2,2)*X(2,:) + T(2) ;
elseif n == 3
Y(1,:) = A(1,1)*X(1,:) + A(1,2)*X(2,:) + A(1,3) * X(3,:) + T(1) ;
Y(2,:) = A(2,1)*X(1,:) + A(2,2)*X(2,:) + A(2,3) * X(3,:) + T(2) ;
Y(3,:) = A(3,1)*X(1,:) + A(3,2)*X(2,:) + A(3,3) * X(3,:) + T(3) ;
else
Y = A*X + repmat(T,1,k) ;
end
varargout{1} = Y ;
else
n = numel(varargin) ;
if n == 2
varargout{1} = A(1,1)*varargin{1} + A(1,2)*varargin{2} + T(1) ;
varargout{2} = A(2,1)*varargin{1} + A(2,2)*varargin{2} + T(2) ;
elseif n == 3
varargout{1} = A(1,1)*varargin{1} + A(1,2)*varargin{2} + A(1,3)*varargin{3} + T(1) ;
varargout{2} = A(2,1)*varargin{1} + A(2,2)*varargin{2} + A(2,3)*varargin{3} + T(2) ;
varargout{3} = A(3,1)*varargin{1} + A(3,2)*varargin{2} + A(3,3)*varargin{3} + T(3) ;
else
for i=1:n
varargout{i} = T(i) * ones(size(varargin{1})) ;
for j=1:n
varargout{i} = varargout{i} + A(i,j)*varargin{j} ;
end
end
end
end
|