我有200张人脸图像(32x32),在这里我将其重塑为矩阵数据
人脸= 200 x 1024(200是人脸样本,1024是一张人脸图像 向量化为1行)
Facemean = 1 x 1024(图像的均值)
欧式距离方程1的使用为:
distance = sqrt ( (Face(1,1)-Facemean(1,1)^2 + (Face(1,2)-Facemean(1,2)^2 + . . . + (Face(200,1024)-Facemean(1,1024)^2 );
因为使用上面的等式将很长,所以我想问一下是否还有其他计算方法?
我期望的结果是1 x 1矩阵值
答案 0 :(得分:0)
更优雅的答案(来自下面的评论):
FacemeanMatrix = repmat( Facemean, [200, 1])
distance = sqrt( sum( ( Face(:)-FacemeanMatrix(:) ).^2 ))
上一个答案
您可以将其写为矢量:
dissqr = 0
% for each colum, calculate the square difference and sum all the lines
for i =1:200
dissqr = dissqr + sum( (Face(i,:)-(Facemean(:,i).'))^2 )
end
distance = sqrt( dissqr )