Matlab EMD算法评测图片相似性

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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值