function [ mapX, mapY ] = WarpRegion( xmin, ymin, mask, triX, coeffs ) %WARPREGION Summary of this function goes here % Detailed explanation goes here %% [h, w] = size(mask); mapX = zeros(size(mask)); mapY = zeros(size(mask)); ys = [1:h]' * ones(1, w) + ymin - 1; xs = ([1:w]' * ones(1, h))' + xmin - 1; for t=0:size(coeffs,1)-1 trimap = triX == t; a = coeffs(t+1,:); xo = a(1) + a(2) * xs + a(3) * ys; mapX(trimap) = xo(trimap); yo = a(4) + a(5) * xs + a(6) * ys; mapY(trimap) = yo(trimap); end mapX(~mask) = -1; mapY(~mask) = -1; %% % [h, w] = size(mask); % mapX_2 = zeros(size(mask)); % mapY_2 = zeros(size(mask)); % % ys = [1:h]' * ones(1, w) + ymin - 1; % xs = ([1:w]' * ones(1, h))' + xmin - 1; % % ys = ys(:); % xs = xs(:); % % xos = coeffs(1,:) + bsxfun(@times, coeffs(2,:), xs) + bsxfun(@times, coeffs(3,:), ys); % yos = coeffs(4,:) + bsxfun(@times, coeffs(5,:), xs) + bsxfun(@times, coeffs(6,:), ys); % % maps = repmat(trimap(:),1, size(coeffs,1)); % maps = repmat end