Opencv numpy 1-D直方图之间的土方机距离

Opencv numpy 1-D直方图之间的土方机距离,opencv,numpy,Opencv,Numpy,我尝试计算两个一维numpy直方图之间的土方机距离,如: (array([ 0.53586639, 0.71448852, 1.22534781, 1.68262046, 1.20391316]), array([ 0. , 0.18648936, 0.37297871, 0.55946807, 0.74595742, 0.93244678]), <a list of 5 Patch objects>) (数组([0.53586639,0.7

我尝试计算两个一维numpy直方图之间的土方机距离,如:

(array([ 0.53586639,  0.71448852,  1.22534781,  1.68262046,  1.20391316]), array([ 0.        ,  0.18648936,  0.37297871,  0.55946807,  0.74595742,
     0.93244678]), <a list of 5 Patch objects>)
(数组([0.53586639,0.71448852,1.22534781,1.68262046,1.20391316]),数组([0,0.18648936,0.37297871,0.55946807,0.74595742),
0.93244678]), )

(数组([0.05986936,0.41133267,1.0449142,2.43569242,2.50891394]),数组([0.17373296,0.32851441,0.48329586,0.63807731,0.79285876),
0.9476402 ]), )
我想对一维数组,而不是图像。我想要一个简单的解决方案。

一个简单的python代码:

import numpy as np

def wasserstein_distance(A,B):
    n = len(A)
    dist = np.zeros(n)
    for x in range(n-1):
        dist[x+1] = A[x]-B[x]+dist[x]
    return np.sum(abs(dist))

不完全可能重复:我的问题更简单。我只想计算EMD,而在另一个问题中,他/她问了一个具体的方法:“如何将numpy数组传输到CVhistogram,如何将CVhistogram传输到函数参数签名?”
import numpy as np

def wasserstein_distance(A,B):
    n = len(A)
    dist = np.zeros(n)
    for x in range(n-1):
        dist[x+1] = A[x]-B[x]+dist[x]
    return np.sum(abs(dist))