论文@http://download.csdn.net/detail/u011339825/9250417
代码@http://download.csdn.net/detail/u011339825/9250429
本文为个人的学习笔记
warpimg.m
function wimg = warpimg(img, p, sz)
% function wimg = warpimg(img, p, sz)
%
% img(h,w)
% p(6,n) : mat format
% sz(th,tw)
%
%% Copyright (C) 2005 Jongwoo Lim and David Ross.
%% All rights reserved.
if (nargin < 3)
sz = size(img); %32*32
end
if (size(p,1) == 1)
p = p(:);
end
w = sz(2); h = sz(1); n = size(p,2);
%[x,y] = meshgrid(1:w, 1:h);
[x,y] = meshgrid([1:w]-w/2, [1:h]-h/2); %相对于center point,所以减h,w/2
pos = reshape(cat(2, ones(h*w,1),x(:),y(:)) ...
* [p(1,:) p(2,:); p(3:4,:) p(5:6,:)], [h,w,n,2]); %各点转化为标准二维坐标
wimg = squeeze(interp2(img, pos(:,:,:,1), pos(:,:,:,2))); %旋转获取框的各点的值 interp2 插值 squeeze 去除单维度
wimg(find(isnan(wimg))) = 0;
img:二维图像
p[x,y,xcos,-ysin,xsin,ycos]:
x,y:coordinates of the centre of the box;
╭x,y ╮╭ xcos,xsin╮
╰ ╯╰ -ysin,ycos╯ 坐标转化矩阵。矩阵转化详见:@http://blog.csdn.net/u011339825/article/details/49703421
wimg:得到box 的各点值(像素或灰度)