你好。想咨询一下跟线性变换相关的问题。
空间中有 1 2 3和4 5 6三个点。已知这6个点的x y z坐标 首先输出1 2 3中点坐标 Xa Ya Za和4 5 6 的中点坐标Xb Yb Zb请问
(X1-Xa Y1-Ya Z1-Za)的转置 乘(X4-Xb Y4-Yb Z4-Zb)这个矩阵的线性变换有什么意义呢
function [RR,TT,data] = svdPre(correspondings,points)
% PreRegistration for known coresponding points
%INPUT:
% correspondings - matrix with model points, [ X_1; X_2; ...;X_M ]
% points - matrix with data points, [ P_1;P_2; ...;P_N ]
%OUTPUT:
% R - rotation matrix
% T - translation vector
% data2 - matrix with transformed data points, [ P_1;P_2;...;P_N ]
% data2 = R*data + T
%
% Usage:
% [R,T,data2] = svdPre(model,data)
% Check input arguments
if or(isempty(correspondings),isempty(points))
error('Something is wrong with the model points and data points');
end
x=points;
y=correspondings;
% Size of model points and data points
m=size(y,2);%y向量列的维数
M=size(y,1);%y向量行的维数
if m~=size(x,2)
error('The dimension of the model points and data points must be equal');
end
N=size(x,1);
%PreRegistration
vi=1:N;
meanx=mean(x,1);
meany=mean(y,1);
C=zeros(3,3);
for i=1:N
C=C+(x(i,:)-meanx)'*(y(i,:)-meany);
end
[U,~,V]=svd(C);
RR=V*U';
if det(RR)<0
V(:,end)=-V(:,end);
RR=V*U';
end
TT=meany'-RR*meanx';
data=RR*x'; % Apply transformation
for i=1:m
data(i,:)=data(i,:)+TT(i); %
end
data = data';