Opencv cv2.split()不';我不能超过512个频道

Opencv cv2.split()不';我不能超过512个频道,opencv,numpy,Opencv,Numpy,我有一个大小为(10x10x1000的数组,我想将其拆分为1000个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,5

我有一个大小为
(10x10x1000
的数组,我想将其拆分为
1000个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
这里的问题是什么?这是一个bug还是有什么其他方法可以让它工作?有没有其他更好的方法可以有效地做到这一点?

您可以使用以下方法:

这似乎有效:

>>> print len(k)
513
您可以改为使用:

这似乎有效:

>>> print len(k)
513

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


“频道的最大可能数量由CV_CN_MAX常量定义,该常量当前设置为512。”您可以读取到,

Open CV使用变量CV_CN_MAX定义了频道的最大数量


“最大可能的通道数由CV_CN_MAX常量定义,该常量当前设置为512。”您可以阅读此内容

谢谢。我了解了
np.dsplit
的功能。知道cv2.split()有什么问题吗函数?谢谢。我了解了与之相同的
np.dsplit
。知道cv2.split()函数有什么问题吗?