unit.m

来自「用MATLAB实现计算机视觉中三维重构所需的基本矩阵的运算」· M 代码 · 共 23 行

M
23
字号
%求解变换矩阵T和T'
function [T,Q]=transform(P,n)
%P为n×2的矩阵 每列表示一点坐标值

%求点集的形心 并将形心移到坐标原点
ave=mean(P');
P(1,:)=P(1,:)-ave(1);
P(2,:)=P(2,:)-ave(2);

%对点进行缩放使它们到原点的平均距离等于2^(1/2)
d_sum=0;

for i=1:n
    d_sum=d_sum+(P(1,i).^2+P(2,i).^2);
end
    d_ave=d_sum/n;

%times为缩放的倍数
s=d_ave/2;
s=sqrt(s);
%T为变换矩阵
T=[1/s 0 -ave(1)/s;0 1/s -ave(2)/s;0 0 1];
Q=T*[P;ones(1,n)];

⌨️ 快捷键说明

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