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

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日

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)