function similarity_result = EMD_algorithm(descriptor,tem)
% 此函数通过描述符计算图像之间的相似性
% 用EMD算法的最小功表示相似性,功越小,图片越相似
% 求出矩阵的行数,256个特征
[a,b] = size(descriptor);
% 初始化EMD的距离搬运矩阵
distance = ones(a);
t = max(max(descriptor));
lb = zeros(1,a^2);
ub = ones(1,a^2)*t;
% 计算距离搬运矩阵distance
for m = 1:a
for n = 1:a
distance(m,n) = abs(m - n);
end
end
% 把二维向量展开
distance = reshape(distance,[a*a,1]);
% 计算货物重量
% 计算变换矩阵m_cargo
col = 2 * a+a^2;
row = a^2;
m_cargo = zeros(2 * a,row);
% 前256行的变换,也就是公式:求和fij <= wqj(i属于1-m)
for i = 1:a
m_cargo(i,(i-1)*a+1 : i*a) = 1;
end
% 前257-512行的变换,也就是公式:求和fij <= wp
Matlab EMD算法评测图片相似性
最新推荐文章于 2022-11-03 21:45:00 发布