Python的三种方式显示图片

from PIL import Image

import numpy as np

im = Image.open("img.png")

#方法一:使用PIL库显示图片

a = np.array(im)

im=Image.fromarray(a)

im.show()

import matplotlib.pyplot as plt

#方法二:使用matplotlib库显示图片

plt.imshow(a)

plt.show()

#方法三:使用opencv库显示图片

import cv2

cv2.imshow("img",a)#显示图片

cv2.waitKey(0)#等待按键按下

cv2.destroyAllWindows()#关闭窗口

cv2.imshow("img",a)显示的照片颜色不对,可能是由于cv2和plt读取图像时的像素格式不一致导致的。cv2读取的图像格式是BGR(蓝、绿、红),而plt读取的图像格式是RGB(红、绿、蓝)。

解决这个问题有以下几种方法:

  • 方法一 :使用cv2的cvtColor函数将图像的颜色通道顺序转换为RGB。可以使用以下代码将cv2读取的图像转换为RGB格式:

    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

  • 方法二 :如果坚持使用cv2.imread读取图像,plt.imshow显示图像,可以利用原理来解决。cv2读取的是BGR,那么把它转化成顺序为RGB的格式,就可以用plt.imshow显示成正确的颜色。可以使用以下代码将BGR格式的图像转换为RGB格式:

    b,g,r = cv2.split(image)
    image_rgb = cv2.merge((r,g,b))

  • 方法三 :使用对应的读取与显示图像方式。可以使用matplotlib.image的imread函数读取图像,然后使用plt.imshow显示图像。或者使用cv2.imread读取图像,然后使用cv2.imshow显示图像。

这些方法可以解决cv2.imshow("img",a)显示的照片颜色不对的问题。根据你的具体需求和代码环境,选择适合的方法即可。

相关推荐
databook2 小时前
时间序列数据,先拆规律还是先查异常
python·数据挖掘·数据分析
师夷长技以自愈3 小时前
手搓 AI Agent 第 8 篇:从手写循环到画流程图——LangGraph 封装
人工智能·python
aifannihao4 小时前
Rust 1.100 的 DropGuard:用 Python 实测失败回滚与吞异常
python·rust·异常处理·标准库·contextlib
用户019027581616 小时前
天勤 tqsdk 能做 A 股行情吗?期货强项与股票数据选型
python
2601_967979127 小时前
pip在Python中的9个必须知道的用法
python·pip·版本控制·包管理工具·requirements.txt
曲径海盗7 小时前
【Python 学习第 58 天】列表方法
python·学习笔记·编程入门
DeepVisionary7 小时前
Runway开源机器人大模型Praxis-1,推演延迟压到62毫秒
python·自动化
Cooper259 小时前
DDC 命令成功但屏幕不动:用 gamma 表重做亮度映射
python·mac
师夷长技以自愈9 小时前
手搓 AI Agent 第 7 篇:菜做砸了别硬炒——错误分类 + 双账本熔断
人工智能·python
用户956256254299 小时前
15 分钟社媒简报 Agent:我只用了搜索和模型两步
python·api