normalizeshape.m
来自「cootes提出的ASM算法的matlab实现。在cootes用于课堂使用的源代」· M 代码 · 共 24 行
M
24 行
function [xNew,yNew]=NormalizeShape(xOld,yOld);%function [xNew,yNew]=NormailzeShape(xOld,yOld);%the distance between point 1 and 2 scale it to unity (s=1/d)dx=xOld(2)-xOld(1);dy=yOld(2)-yOld(1);s=1/sqrt(dx^2+dy^2);%make the line pt1-pt2 horizpntal by rotating it negative its angle (Theta= - angle of slope)Theta=-atan(dy/dx);if (dx<0) Theta=Theta+pi; end %scale and rotate but NO translationNewX=ScaleRotateTranslate([xOld;yOld],s,Theta,0,0);% now translate to make the mean of x and y at origin (center of mass on origin)tx=-mean(NewX(1:end/2));ty=-mean(NewX(end/2+1:end));NewX=NewX+[tx*ones(length(NewX)/2,1);ty*ones(length(NewX)/2,1)];xNew=NewX(1 :end/2);yNew=NewX(end/2+1:end);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?