我正在尝试从文件中读取图像,然后尝试使用Python 3.6.4中的opencv库来调整它的大小
我在这一行得到了错误: resized = cv2.resize(src =numpy.array(图像),dsize = (9,8),interpolation = cv2.INTER_CUBIC) TypeError:在docker中运行代码时不支持src data type = 17,但一切似乎都在本地机器上工作。
以下是我的代码:
pil_image = Image.open(io.BytesIO(filedata))
image = cv2.cvtColor(numpy.asarray(pil_image), cv2.COLOR_BGR2GRAY)
resized = cv2.resize(src = numpy.array(image), dsize = (9, 8), interpolation = cv2.INTER_CUBIC)docker镜像可能会出现什么问题,我是否缺少任何依赖项?
发布于 2018-05-30 13:09:46
该问题在Python 3和Python 2中都无法重现。
type = 17表示您的图像是CV_8SC3类型的,这意味着它有三个通道的带符号的8位值。这很奇怪,因为它表明您的灰度转换不起作用。
你能做的就是观察数组的形状和数据类型。例如:
im = numpy.asarray(pil_image)
print (im.shape, im.dtype)
image = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
print (image.shape, image.dtype)第二个print通常有两个数字,类型为uint8。如果您在那里有不同的输出,这可能表明问题的根源。
https://stackoverflow.com/questions/50420469
复制相似问题