You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenCV在Jupyter读取本地图片报错dtype object无法转换为float

问题原因

两个报错的根本原因是cv.imread()未成功读取到图片,返回值为None:

  1. cv.cvtColor报错!_src.empty()是因为输入的源数据为空,不符合处理要求
  2. matplotlib报错Image data of dtype object cannot be converted to float是因为传入的im为None,被识别为object类型,无法转换为绘图需要的float数值类型

解决方法

  • 优先修正图片路径:你提到图片存放在桌面,当前代码用的相对路径只有在Jupyter Notebook的工作目录和图片存放目录一致时才能生效,建议替换为绝对路径:
    Windows系统下桌面路径格式参考:C:/Users/你的实际用户名/Desktop/dog.jpg(也可以用双反斜杠\\替代正斜杠做路径分隔)
  • 增加读取校验逻辑,提前识别读取失败的情况,示例代码如下:
import cv2 as cv
import matplotlib.pyplot as plt

# 替换为你的实际图片绝对路径
im = cv.imread("C:/Users/xxx/Desktop/dog.jpg")
if im is None:
    print("图片读取失败,请检查路径、文件名、图片完整性")
else:
    im_1 = cv.cvtColor(im, cv.COLOR_BGR2RGB)
    plt.imshow(im_1)
    plt.show()
  • 其他排查项:确认文件名拼写、大小写完全匹配,图片没有损坏、没有被其他进程锁定,后缀名和实际图片格式一致。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:06:05