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)显示的照片颜色不对,可能是由于cv2plt读取图像时的像素格式不一致导致的。cv2读取的图像格式是BGR(蓝、绿、红),而plt读取的图像格式是RGB(红、绿、蓝)。

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

  • 方法一 :使用cv2cvtColor函数将图像的颜色通道顺序转换为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.imageimread函数读取图像,然后使用plt.imshow显示图像。或者使用cv2.imread读取图像,然后使用cv2.imshow显示图像。

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

相关推荐
weixin_4407305018 分钟前
playwright浏览器自动化实战笔记3-登陆以及退出登陆流程-多用户操作
笔记·python·自动化
卷无止境27 分钟前
测试全绿,功能能跑,代码却烂到没法上线:AI编程助手留下的十个坑
后端·python
卷无止境34 分钟前
终端里的AI战争,命令行编程代理全景扫描
python·agent
SamChan9040 分钟前
PDF多语言翻译的格式还原技术拆解:从版面分析到内容重排的工程实现
python·ai·pdf·机器翻译
liuze4081 小时前
安装boss-zhipin-mcp(招聘)
开发语言·python
TickDB1 小时前
Python 接入 A 股盘前集合竞价数据:AkShare 报错到 TickDB 实测的完整解法
python·websocket·行情数据 api
2601_962298271 小时前
【自动化测试】基于Selenium + Python的web自动化框架
自动化测试·python·selenium·测试用例·web框架
2601_962077531 小时前
Python 条件表达式
python·语法·列表推导式·条件表达式·pep308
右耳朵猫AI2 小时前
Python周刊2026W36 | Python 3.15候选版、RISC-V获CPython支持、PEP 843、asyncio修复
python·sqlite·risc-v
liliangcsdn2 小时前
基于信号强度的稀疏选股算法的探索分析
开发语言·python