小编nag*_*wal的帖子

图像之间的欧几里德距离

在此处输入图片说明我有两个图像,比如PS,大小为 8192×200,我想计算它们之间的自定义“欧几里德距离”。目前我使用以下步骤:

  1. 将图像重塑为一对列向量和行向量:

    Ip = Ip(:).';
    Is = Is(:);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 计算一个度量矩阵,G,其条目由公式给出

    G(i,j) = 1/(2*pi*r*r) * exp((-d*d)/(2*r*r));
    
    Run Code Online (Sandbox Code Playgroud)

    其中r是一个从 0 到 20 变化的全局参数,例如,d是 pixeli和 pixel之间的距离j。例如,如果像素i(k,l)并且像素j(k1,l1),则d = sqrt((k-k1)^2 + (l-l1)^2);。像素 1 将是(1,1),像素 2 将是(1,2),依此类推。因此,矩阵的大小G将为1638400×1638400

  3. 计算两个图像之间的最终(标量)欧几里得距离,使用:

    ImEuDist = sqrt( (Ip-Is) * G * (Ip-Is).' );  
    
    Run Code Online (Sandbox Code Playgroud)

我已经使用 mex 函数编写了一些代码,但是在给出结果之前花费的时间太长(5-6 小时) - 请参阅此 SO …

algorithm matlab image

5
推荐指数
1
解决办法
9838
查看次数

标签 统计

algorithm ×1

image ×1

matlab ×1