在 numpy python 2.7 中制作图像数组

Making an array of images in numpy python 2.7

我想要一组图像。例如,我有一个 4x1 数组(下面称为 imslice),其中每个元素都是一个 nxnx3 图像。

我想这样做是为了对我的 imslice 矩阵进行矩阵运算,就像它是一个普通矩阵一样。例如,将它乘以一个常规的 2x2 矩阵(称为 V)。当我现在尝试这样做时,我得到一个 5 维的数组,当我尝试将它乘以我的 V 矩阵时,我得到的错误是尺寸不一致(即使在数学上它很好,因为内部尺寸一致。)

代码:

imslice = np.array(([imslice1q, imslice2q, imslice3q, imslice4q]))

print imslice.shape


V = mh.gen_vmonde(4, 2, 1)

V.shape

C = np.dot(np.transpose(V), imslice)

------------------------------------------- ValueError Traceback (most recent call last)

in ()

6 V.shape

7

----> 8 np.dot(np.transpose(V), imslice)

9

ValueError: shapes (6,4) and (4,178,178,3) not aligned: 4 (dim 1) != 178 (dim 2)

np.dotnp.matmul 都将二维以上的数组视为矩阵堆栈,因此最后一个和最后一个维度必须匹配。

针对您的情况,一个简单的解决方法是转置:

np.dot(imslice.T, V).T

如果您需要更灵活的东西,np.einsum:

np.einsum('ji,jklm', V, imslice)