lmw0320 2022-12-19 16:37 采纳率: 75%
浏览 40
已结题

cv2读取图片返回为None,非中文路径问题

python的opencv库,读取图片,返回是None。既非中文路径文件,也非无效图片。
用PIL.Image读取的话,就是正常的,转成np数组,可以正常查看图片大小。同时也发现是单通道。。
但是别人在mac上查看,却看到是4通道的。。
很迷糊,求指点。我这里也上传这张图片给各位验证

img

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-19 17:23
    关注

    望采纳

    如果你使用 PIL.Image 库的 Image.open() 函数可以正常读取图片,那么可能是 OpenCV 库对图片的格式或者图片的某些属性不支持导致的。

    你可以尝试使用 OpenCV 库的 imdecode() 函数读取图片,代码如下:

    import numpy as np
    import cv2
    
    # 读取图片文件
    with open('image.jpg', 'rb') as f:
        image_data = f.read()
    
    # 使用 imdecode() 函数解码图片数据
    image = cv2.imdecode(np.frombuffer(image_data, np.uint8), -1)
    
    # 检查读取的图片数据
    print(image.shape)
    

    上面的代码中,imdecode() 函数的第二个参数 -1 表示保留图片的所有通道。如果你只想保留单通道,可以将参数改为 0,例如 cv2.imdecode(np.frombuffer(image_data, np.uint8), 0)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 修改了问题 12月19日
  • 创建了问题 12月19日