1

我有一个大小数组,(10x10x1000我想将其拆分为1000 arrays of 10x10. 所以我为此使用cv2.split()了函数。但它不起作用。

因此,经过仔细检查,我发现 cv2.split() 不适用于具有超过 512 个通道的数组。

见下文 :

In [101]: j = np.arange(3*3*512).reshape((3,3,512)); k = cv2.split(j); print len(k)
512

In [102]: j = np.arange(3*3*513).reshape((3,3,513)); k = cv2.split(j); print len(k)
1

这里有什么问题 ?它是一个错误还是有其他事情可以使它工作?有没有其他更好的方法可以有效地做到这一点?

4

2 回答 2

1

您可以numpy.split改用:

>>> k = np.split(j, j.shape[-1], -1)

它似乎工作:

>>> print len(k)
513
于 2013-05-20T16:18:41.447 回答
0

Open CV 使用变量 CV_CN_MAX 定义最大通道数。

“最大可能的通道数由 CV_CN_MAX 常量定义,当前设置为 512。” 你可以在这里阅读

于 2013-05-20T17:08:39.743 回答