【发布时间】:2023-01-25 00:47:41
【问题描述】:
我有 2 个 RGB 图像堆栈,每个图像堆栈包含 200 个图像。每个图像是 (300, 300, 3),所以每个堆栈是 (200, 300, 300, 3)。
所以我们有:
a_stack[200, 300, 300, 3]
b_stack[200, 300, 300, 3]
我的目标是计算每个堆栈中每对图像组合之间的欧几里德距离,我可以使用
measure = dist.euclidean(a_img.flatten(), b_img.flatten())
我的问题是构建适当的迭代器来获取 a_stack 和 b_stack 之间的每个成对组合
我查看了itertools.combinations,但这似乎是针对字符串中元素的组合。 narrays有类似的东西吗?
【问题讨论】:
-
itertools 函数通常适用于任何可迭代对象,而不仅仅是字符串。因此,表达式
for a, b in itertools.combinations(a_stack, b_stack)应该可以正常工作。但是,根据您的描述,您似乎在寻找itertools.product,而不是itertools.combinations。 -
@PaulBrodersen 给出数组是 4D 的,那只会在第一维上创建产品吗?
标签: python combinations numpy-ndarray combinatorics