【问题标题】:Trying to use opencv resize with Pillow image尝试使用带有枕头图像的opencv调整大小
【发布时间】:2018-10-29 10:26:40
【问题描述】:

我正在尝试从文件中读取图像,然后尝试使用 Python 3.6.4 中的 opencv 库调整其大小

我在这一行遇到错误: 调整大小 = cv2.resize(src = numpy.array(image), dsize = (9, 8), 插值 = cv2.INTER_CUBIC) TypeError: src data type = 17 is not supported while running code in docker, 但一切似乎都在本地机器上工作。

以下是我的代码:

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 镜像可能存在什么问题,我是否缺少任何依赖项?

【问题讨论】:

    标签: python opencv image-resizing pillow cv2


    【解决方案1】:

    在 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 作为类型。如果那里有不同的输出,这可能表明问题的根源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      相关资源
      最近更新 更多