使用cv2读取图片时,输出图片形状大小时出现报错“ ‘NoneType’ object has no attribute shape”,后来排查发现读取图片的返回值image为None, 这就说明图片根本就没有被读取。 下面图片是问题问题解决后,为了更好的展示,写的代码展示,这是正常的因果关系,找错误排查时是从下往上推。 使用PIL读取图像,能够成功读取图片,借此了解图片的大小和格式,代码如下图所示: cv.imread函数能够成功读取非中文路径的图片,所以就想到是不是中文路径的问题,opencv中opencv不接受non-ascii的路径,解决方法就是先用先用np.fromfile()读 在Python编程中,OpenCV库(cv2)是处理图像和视频的重要工具,但有时可能会遇到一些棘手的问题。在本文中,我们将深入探讨如何解决使用`cv2.imread()`读取包含中文路径的图片返回`None`的问题。 当尝试用`cv2.imread()`读取图片时,如果返回值为`None`,这通常意味着图片没有被成功加载。一种可能的原因是图片路径的编码问题。在某些情况下,OpenCV可能不支持包含非ASCII字符(如中文字符)的路径。这会导致`cv2.imread()`无法正确识别和处理图片路径。 为了解决这个问题,我们可以采取以下步骤: 1. 确认图片路径是否正确。确保路径中没有拼写错误或者文件夹结构错误。可以尝试使用非中文路径来测试,如果非中文路径可以正常读取,那么问题很可能出在路径的编码上。 2. 使用PIL(Python Imaging Library)的`Image.open()`函数作为替代方案,它通常对路径的兼容性更好。如果`PIL.Image.open()`可以成功读取图片,这进一步证实了路径本身没有问题,而是OpenCV的问题。 3. 当确定问题在于OpenCV不支持中文路径时,可以采用以下工作流程: - 使用`numpy`的`fromfile()`函数以二进制方式读取文件到numpy数组,例如:`np.fromfile(filename, dtype=np.uint8)` - 然后,使用`cv2.imdecode()`函数从这个numpy数组中解码图片。`cv2.imdecode()`接收一个字节流,将其解码为图像。例如:`image = cv2.imdecode(np.fromfile(filename, dtype=np.uint8), cv2.IMREAD_COLOR)` 4. 另外,检查Python版本和OpenCV库的安装。确保你正在使用的Python是3.x版本,因为早期版本可能存在对非ASCII路径支持不佳的问题。同时,确认已经正确安装了`opencv-python`库,并且是最新的版本。 5. 如果图片是从网络下载的,或者格式不正确,可能会导致`cv2.imread()`失败。确保图片的格式与声明的扩展名匹配。例如,如果文件实际是GIF,但被错误地命名为JPG,可能会导致读取问题。在这种情况下,可以使用Python的PIL库的`Image`模块将图片转换为正确的格式,例如:`img = Image.open(file_path + '/' + files[j]).convert('RGB')`,然后保存为新的格式:`img.save(file_path + '/' + files[j])`。 6. 在进行格式转换时,需要注意,文件的扩展名并不总是决定文件的实际格式。有时,程序会依赖文件头信息来判断文件的真正格式。因此,使用像PIL这样的库进行转换可以确保文件内容和格式的一致性。 当你遇到`cv2.imread()`读取中文路径图片返回`None`的问题时,应首先检查路径的正确性,然后尝试使用PIL作为验证,最后通过`numpy.fromfile()`和`cv2.imdecode()`组合来绕过OpenCV对非ASCII路径的限制。此外,确保图片的格式和扩展名匹配也是解决此类问题的关键。





























- 水兴2022-06-02垃圾东西,别下载

- 粉丝: 6
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】联合国歌曲TheF.U.N.song.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】链表应用2取随机数.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】链表.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】梁景森1.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】两个角色同步.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】两个球球.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】灵敏坦克.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】令人绝望的游戏.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】另类弹球.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】溜冰的企鹅.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】流星.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】流星雨.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】六尺巷.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】笼中鸟.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】六角形雪花.zip
- 【scratch2.0少儿编程-游戏原型-动画-项目源码】六角形雪花快速版.zip


