Jupyter 运行经验3:读入和显示一张图片

Jupyter 运行经验3:读入和显示一张图片

运行结果

代码:

python 复制代码
# 1. 先导入必要的库
import cv2
import matplotlib.pyplot as plt
import numpy as np

# 2. 关键配置:设置 Matplotlib 在 Notebook 中内嵌显示图像
# 这行代码必须放在导入 plt 之后、绘图之前,且只需要运行一次
%matplotlib inline  

# (可选)如果想弹出独立的图像窗口,改用这行(部分环境需要)
# %matplotlib qt  

# 3. 读取图像(示例,替换成你的图像读取逻辑)
# 注意:cv2 读取的图像是 BGR 格式,Matplotlib 是 RGB 格式,需要转换
image = cv2.imread("你的图像路径.jpg")  # 替换为实际路径
image_copy = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  # 格式转换(关键!否则图像颜色会错乱)

# 4. 绘图 + 显示(缺一不可)
plt.imshow(image_copy)
plt.axis('off')  # 可选:关闭坐标轴,让图像显示更整洁
plt.show()       # 关键!触发图像显示

plt.imshow() 只是把图像绘制到 Matplotlib 的画布上,但不会主动弹出显示窗口。在 Jupyter Notebook 这种交互式环境中,还需要额外的配置和命令来让图像显示出来。

关键细节解释

  1. 魔法命令 %matplotlib inline:
  • 这是 Jupyter Notebook 专属的配置,作用是让 Matplotlib 绘制的图像直接嵌入到 Notebook 单元格下方,而不是弹出独立窗口。
  • 如果想弹出独立的图像窗口(类似桌面程序),可以改用 %matplotlib qt(需要你的环境安装了 PyQt 等后端,若报错则换回 inline)。
  1. plt.show() 命令:
  • 即使加了 %matplotlib inline,部分版本的 Matplotlib 仍需要 plt.show() 来显式触发图像显示,建议始终加上。
  1. 图像格式转换(CV2 + Matplotlib 必做):
  • 如果你用 cv2.imread() 读取图像,默认是 BGR 通道顺序,而 plt.imshow() 期望 RGB 顺序,不转换会导致图像颜色失真(比如红色变蓝色),甚至看起来像 "没有显示"(实际是显示了但颜色全错)。

排查其他可能的问题

如果按上述代码仍不显示,检查以下几点:

  • **图像路径错误:**确认 cv2.imread() 的路径是正确的(绝对路径 / 相对路径),可以加一行 print(image_copy),如果输出 None 说明图像没读到。
  • 图像数据为空:检查 image_copy 是否是有效的数组,执行 print(image_copy.shape),能输出 (高度, 宽度, 3) 说明数据正常。
  • Matplotlib 版本问题:升级 Matplotlib 解决兼容性问题:
cmd 复制代码
 pip install --upgrade matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

总结

  1. 核心解决步骤:在绘图前加 %matplotlib inline,绘图后加 plt.show()。
  2. 若用 CV2 读取图像,必须通过 cv2.cvtColor(..., cv2.COLOR_BGR2RGB) 转换通道顺序。
  3. 排查要点:确认图像路径正确、图像数据非空,必要时升级 Matplotlib。
相关推荐
getapi8 小时前
Windows 11 安装 uv包括:更新、常用命令、Python 管理、环境切换等,(Astral 的 Python 包/环境工具)完整指南
windows·python·uv
智算菩萨8 小时前
【Pygame】第1章 Pygame入门与环境搭建
python·ai编程·pygame
晨港飞燕8 小时前
Idea识别Freemarker语法并高亮显示
java·ide·intellij-idea
Dxy12393102168 小时前
Python 使用 `raise` 报错抛出异常显示 Unicode 码如何解决
开发语言·python
源码之家8 小时前
计算机毕业设计:Python 共享单车数据分析可视化系统 Flask框架 可视化 大数据 机器学习 深度学习 数据挖掘(建议收藏)✅
大数据·python·数据挖掘·数据分析·汽车·课程设计·美食
SiYuanFeng8 小时前
uv初步介绍及简单的使用方法例子
开发语言·python·uv
zero15978 小时前
Python 8天极速入门笔记(大模型工程师专用):第八篇-Python 综合实战|完整大模型调用脚本,8 天成果落地
人工智能·python·ai编程·大模型开发
孤魂2338 小时前
机器学习基本概念
python·机器学习
人工干智能8 小时前
科普:<generator object ...>,不是报错!兼谈[x for x in ...]与(x for x in ...)
python
张二娃同学8 小时前
基于 Python 与 Tkinter 的猜数字游戏设计与实现:支持玩家猜数与 AI 反向推理
开发语言·git·python·游戏·开源