getinitpospara.m

来自「active shape model的matlab代码实现」· M 代码 · 共 29 行

M
29
字号
function [s,Theta,cx,cy]=GetInitPosPara(XInputLeft,XInputRight,XBaseLeft,XBaseRight)
% function [s,Theta,cx,cy]=GetInitPosPara(XInputLeft,XInputRight,XBaseLeft,XBaseRight)
% XInputLeft,XInputRight是训练得到的平均形状模型中的左右嘴角位置
% XBaseLeft,XBaseRight是用Boosting方法得到的图上嘴角的预测位置
% 返回使平均模型接近图上嘴位置的变换参数


%                                 [ s*cos(Theta)  s*sin(Theta)  0]
% [x* y* 1] = [x y 1]*T = [x y 1]*[-s*sin(Theta)  s*cos(Theta)  0]
%                                 [     cx            cy        1]


Input=[XInputLeft;XInputRight];
Base=[XBaseLeft;XBaseRight];

mytform = cp2tform(Input,Base,'linear conformal');
T=mytform.tdata.T;
cx=T(3,1);
cy=T(3,2);

s=norm(XBaseLeft-XBaseRight)/norm(XInputLeft-XInputRight);

Theta=asin(T(1,2)/s);
if abs(Theta)<1e-6
    Theta=0;
end


⌨️ 快捷键说明

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