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

Jupyter Notebook中Torch与Matplotlib冲突:plt.imshow无法显示求助

解决方案:Torch Hub加载YOLOv5后Matplotlib无法显示图像

以下是几种针对该问题的可行解决办法:

1. 提前锁定Matplotlib后端

在代码最开头明确指定Jupyter兼容的Matplotlib后端,避免YOLOv5加载时修改后端设置:

%matplotlib inline
import matplotlib.pyplot as plt
import cv2
import torch
# 后续加载模型及视频读取代码...

如果需要交互式绘图窗口,可替换为%matplotlib notebook。

2. 加载模型后重置Matplotlib后端

部分YOLOv5版本在加载时会自动设置Matplotlib为无显示后端(如Agg),导致Jupyter无法渲染图像,可在加载模型后重新切换:

torch.hub.load(yolo_path, 'custom', path=onnx_path, source='local')
# 重置后端为Jupyter适配的inline模式
plt.switch_backend('module://ipykernel.pylab.backend_inline')

3. 强制刷新绘图并清理资源

在plt.show()后添加清理操作,避免线程阻塞或资源占用:

plt.imshow(frame)
plt.axis('off')
plt.show()
# 关闭当前绘图窗口,释放资源
plt.close()

如果需要实时刷新画面,可替换为:

plt.imshow(frame)
plt.axis('off')
plt.draw()
plt.pause(0.001)  # 强制触发画面刷新

4. 确认图像通道格式

虽然cv2可正常显示,但YOLOv5加载后可能间接影响图像处理逻辑,可尝试将cv2默认的BGR格式转换为Matplotlib要求的RGB格式:

frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
plt.imshow(frame_rgb)
plt.axis('off')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:35