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

📄 facesymexamdk.m

📁 计算坐标系中三个点的镜像对称距离_以某一点为基准.
💻 M
字号:
function SDdnf=FaceSymExamd(P)
% 计算人脸的镜像对称距离SDdnf
% P为检测出的特征点(眼睛和嘴巴)的坐标组成的2*3的数组
% P3是嘴的坐标,将其设为原点
Temp0=zeros(1,3);
P1=ones(3,3); % 坐标变换
for j=1:1:3
    for i=1:1:2
        P1(i,j)=P(i,j);
    end
end
Matrix0=[1 0 0;0 1 0;-P(1,3) -P(2,3) 1]; % 嘴位置移至原点的平移变换矩阵
for j=1:1:3
    if j==1
        for i=1:1:3
            Temp0(i)=P1(i,j);
        end
        Temp1=Temp0*Matrix0;
    elseif j==2
        for i=1:1:3
            Temp0(i)=P1(i,j);
        end
        Temp2=Temp0*Matrix0;
    elseif j==3
        for i=1:1:3
            Temp0(i)=P1(i,j);
        end
        Temp3=Temp0*Matrix0;
    end
end
% 计算两个眼睛的中点M(Mx,My)
T=zeros(1,2);
for i=1:1;2
    if i==1
        T(i)=(Temp1(i)+Temp2(i))/2;
    elseif i==2
        T(i)=(Temp1(i)+Temp2(i))/2;
    end
end
a=atan(Temp1(2)/Temp1(1));
b=atan(Temp2(2)/Temp2(1));
k=atan(T(2)/T(1));
d=2*(pi/2-k);
RefMatrix=[-cos(d) sin(d) 0;sin(d) cos(d) 0;0 0 1]; % RefMatix为以OM为对称轴的镜像对称变换矩阵
Temp4=ones(1,3);
for i=1:1:2
    Temp4(i)=P1(i,2);
end
T1=Temp4*RefMatrix;  % 关于镜像对称轴做旋转变换P',T1为左侧眼睛位置
Px=(Temp1(1)+T1(1))/2; % 旋转后点的平均点的x坐标值P0
Py=(Temp1(2)+T1(2))/2; % 旋转后点的平均点的y坐标值
RefMatrixN=inv(RefMatrix); % RefMatrix的逆矩阵
Temp4(1)=Px;
Temp4(2)=Py;
T2=Temp4*RefMatrixN;  % 关于镜像对称轴反向旋转变换得到P*,T2为右侧眼睛位置
% 将特征点移到原来的位置(以嘴部为基准)
Matrix0N=inv(Matrix0);
for j=1:1:3
    if j==1
        Temp1=T1*Matrix0N;
    elseif j==2
        Temp2=T2*Matrix0N;
    elseif j==3
        Temp3=Temp3*Matrix0N;
    end
end
P2=zeros(2,3);
for j=1:1:3
    if j==1
        for i=1:1:2
            P2(i,j)=Temp1(i);
        end
    elseif j==2
        for i=1:1:2
            P2(i,j)=Temp2(i);
        end
    elseif j==3
        for i=1:1:2
            P2(i,j)=Temp3(i);
        end
    end
end
% 计算SDdnf
SDdnf=0;
for j=1:1:3
    for i=1:1:2
        SDdnf=SDdnf+(P2(i,j)-P(i,j))^2;
    end
    if j==3
        SDdnf=SDdnf/3;
    end
end
        

⌨️ 快捷键说明

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