计算两个质心之间的距离
Calculate the distance between two Centriods
我正在尝试跟踪二进制视频帧中检测到的对象。因此,我将检测到的物体(小红车)的质心存储在出队中,并使用 scypi 空间距离使用以下代码计算两个连续质心之间的距离:
import scipy.spatial.distance
from collections import deque
#defining the Centroid
centroids=deque(maxlen=40)
.
.
.
centroids.appendleft(center)
#center comes from detection process. e.g centroids=[(120,130), (125,132),...
Distance=scipy.spatial.distance.cdist(center[0],center[1)]
print('Distance ",Distance)
当我 运行 代码时,出现以下错误:
raise ValueError('XA must be a 2-dimensional array.')
ValueError: XA must be a 2-dimensional array.
错误是合乎逻辑的,因为存储的质心是汽车中心的点向量
所以我的问题是:
我怎样才能使这个工作以这样的方式进行,以便我得到每两个连续质心之间的距离差?
scipy.spatial.distance.cdist()
需要两个二维数组作为输入,但是通过提供它 center[0]
和 center[1]
你给它两个一维数组。
如果您想一次输入一个 centroids
的元素,scipy.spatial.distance
包含一个名为 euclidean
的函数,它测量两个一维数组之间的距离。
要以这种方式获得每对连续质心之间的距离,您可以像这样遍历质心列表:
distances = []
for i in range(len(centroids) - 1):
distances.append(euclidean(centroids[i], centroids[i+1]))
我正在尝试跟踪二进制视频帧中检测到的对象。因此,我将检测到的物体(小红车)的质心存储在出队中,并使用 scypi 空间距离使用以下代码计算两个连续质心之间的距离:
import scipy.spatial.distance
from collections import deque
#defining the Centroid
centroids=deque(maxlen=40)
.
.
.
centroids.appendleft(center)
#center comes from detection process. e.g centroids=[(120,130), (125,132),...
Distance=scipy.spatial.distance.cdist(center[0],center[1)]
print('Distance ",Distance)
当我 运行 代码时,出现以下错误:
raise ValueError('XA must be a 2-dimensional array.')
ValueError: XA must be a 2-dimensional array.
错误是合乎逻辑的,因为存储的质心是汽车中心的点向量
所以我的问题是:
我怎样才能使这个工作以这样的方式进行,以便我得到每两个连续质心之间的距离差?
scipy.spatial.distance.cdist()
需要两个二维数组作为输入,但是通过提供它 center[0]
和 center[1]
你给它两个一维数组。
如果您想一次输入一个 centroids
的元素,scipy.spatial.distance
包含一个名为 euclidean
的函数,它测量两个一维数组之间的距离。
要以这种方式获得每对连续质心之间的距离,您可以像这样遍历质心列表:
distances = []
for i in range(len(centroids) - 1):
distances.append(euclidean(centroids[i], centroids[i+1]))