function sift_descs=describeRegions(Image, Regions)

RLECells = [Regions{1} Regions{2}];
im = Image;
if (size(im,3)>1)
  im=rgb2gray(Image);
end;

%% Description phase
fprintf(1, 'Computing SIFT descriptions\n');
len = size(RLECells,2);
s=warning('off');
% convert regions to ellipses
for i=1:len
  S = RLECells{2,i};
  keys(i).drid = i; keys(i).x = S.cx; keys(i).y = S.cy;
  % enlarge described region two times
  A = 2*sqrtm([S.sxx S.sxy; S.sxy S.syy]);
  keys(i).a11 = A(1,1); keys(i).a12 = A(1,2);
  keys(i).a21 = A(2,1); keys(i).a22 = A(2,2);
end;

% generate affine covariant SIFT descriptions
p.description_type = 3;
sift_descs = lowesift(im, keys, p);
warning(s);
