OpenCV Python 不支持 src 数据类型 17 错误
src data type 17 not supported error with OpenCV Python
我想使用 ImageGrab 截取屏幕特定区域的屏幕截图,并将图像转换为 numpy 数组以使用 OpenCV 进行分析。但是,我偶然发现了一个 src 数据类型 17 错误,当我更改 grab 函数的参数时,我只是随机得到这个错误。因此,例如,当参数为:(10, 10, 50, 40) 时,它会打印出一个普通的 numpy 数组,然后可以使用 opencv 将其转换为灰度,但是使用其他参数,例如:(100, 100, 100, 100)它一直给出 src data type = 17 is not supported error
。当我尝试打印出 numpy 数组时,它也不显示数组,而是仅将大小为 0x0 的内存放在内存中,例如:<PIL.Image.Image image mode=RGB size=0x0 at 0x532C570>
下面是代码示例。如果有人能帮我解释为什么会发生这种情况,并可能提出修复建议,我将不胜感激。
import cv2
import numpy as np
from PIL import ImageGrab
while True:
img = ImageGrab.grab(bbox=(10, 10, 50, 40))
img_np = np.array(img)
print img_np
#img_grayscaled = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
PIL 的边界框是一个 4 元组,定义了左、上、右和下像素坐标,请参见 docs for getbbox
。所以 (100, 100, 100, 100)
没有给出正确的图像(高度和宽度为零)。
我想使用 ImageGrab 截取屏幕特定区域的屏幕截图,并将图像转换为 numpy 数组以使用 OpenCV 进行分析。但是,我偶然发现了一个 src 数据类型 17 错误,当我更改 grab 函数的参数时,我只是随机得到这个错误。因此,例如,当参数为:(10, 10, 50, 40) 时,它会打印出一个普通的 numpy 数组,然后可以使用 opencv 将其转换为灰度,但是使用其他参数,例如:(100, 100, 100, 100)它一直给出 src data type = 17 is not supported error
。当我尝试打印出 numpy 数组时,它也不显示数组,而是仅将大小为 0x0 的内存放在内存中,例如:<PIL.Image.Image image mode=RGB size=0x0 at 0x532C570>
下面是代码示例。如果有人能帮我解释为什么会发生这种情况,并可能提出修复建议,我将不胜感激。
import cv2
import numpy as np
from PIL import ImageGrab
while True:
img = ImageGrab.grab(bbox=(10, 10, 50, 40))
img_np = np.array(img)
print img_np
#img_grayscaled = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
PIL 的边界框是一个 4 元组,定义了左、上、右和下像素坐标,请参见 docs for getbbox
。所以 (100, 100, 100, 100)
没有给出正确的图像(高度和宽度为零)。