米不是numpy的阵列,无论是标量
import cv2
import numpy as np
from PIL import Image
img = Image.open("test.jpg")
imgfilename = img.filename
imgb,imgg,imgr = cv2.split(img)
count = 0
我已经得到了以下错误,当我尝试运行我的代码 - 这是我得到的错误:米不是numpy的阵列,无论是标量
File "WB.py", line 9, in <module>
imgb,imgg,imgr = cv2.split(img)
TypeError: m is not a numpy array, neither a scalar
你”通常不应该将PIL与numpy一起使用,这些库不会互相影响很多。从numpy(和opencv)的角度来看,图像只是任何给定类型(二维用于灰度,三维用于颜色)的2D或3D array
。另外cv2
默认使用BGR ...
以cv2.imread(path, cv2.IMREAD_COLOR)
开始而不是Image.open(path)
。
我不会说他们“你通常不应该将PIL与numpy一起使用”--- PIL只是将图像保存为“PIL Image”类型的对象,而numpy则将它们保存为“numpy ndarray”类型的对象。 'np.array(
如果你想坚持使用PIL图像类,那么是的---使用PIL功能。但是由于OP在OpenCV之前发布过一次,也许你可以扩展这个答案,提供一些关于使用OpenCV函数的建议,或者如何使用numpy数组来处理这两个函数。 –
你有没有读过['docs'](http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.split)? – Divakar