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

📄 transform_by_tps.m.svn-base

📁 使用混合高斯函数
💻 SVN-BASE
字号:
%% Perform thin-plate spline warping
%% Input:
%%       landmarks:   source pts stored in nxd matrix.  
%%       parameters:  parameters in nxd matrix where first (d+1) rows are
%%       affine parameters corresponding to <1,x,y>
%% Output:
%%       warped_pts:  target pts in nxd matrix
%%       energy:      bending energy

function [warped_pts, bending_energy] = transform_by_tps(param, landmarks, ctrl_pts)
%%=====================================================================
%% $RCSfile: transform_by_tps.m,v $
%% $Author: bjian $
%% $Date: 2008/06/28 23:32:21 $
%% $Revision: 1.1 $
%%=====================================================================
if (nargin==2)
    [n,d] = size(landmarks);
    [B,lambda] = compute_basis(landmarks);
    warped_pts = B*param;
    tps_param = param(d+2:n,:);
    bending_energy = trace(tps_param'*diag(lambda)*tps_param);
else
    [m,d] = size(landmarks);
    [n,d] = size(ctrl_pts);
    [K,U] = compute_K(ctrl_pts,landmarks);
    Pm = [ones(m,1) landmarks];
    Pn = [ones(n,1) ctrl_pts];
    PP = null(Pn'); B = [Pm U*PP]; 
    warped_pts = B*param;
    tps_param = param(d+2:n,:);
    bending_energy = trace(tps_param'*PP'*K*PP*tps_param);
end

⌨️ 快捷键说明

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