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)显示的照片颜色不对的问题。根据你的具体需求和代码环境,选择适合的方法即可。

相关推荐
抠头专注python环境配置1 小时前
如何在Jupyter中快速切换Anaconda里不同的虚拟环境
人工智能·python·jupyter
安冬的码畜日常3 小时前
利用 Python 脚本批量创建空白 Markdown 笔记
开发语言·python·批量生成
一水鉴天5 小时前
为AI聊天工具添加一个知识系统 开发环境准备
python
sysu636 小时前
73.矩阵置零 python
开发语言·数据结构·python·线性代数·leetcode·面试·矩阵
代码的乐趣7 小时前
支持selenium的chrome driver更新到131.0.6778.264
chrome·python·selenium
爱喝热水的呀哈喽7 小时前
pytorch模型的保存失敗しましたが、
人工智能·pytorch·python
pzx_0017 小时前
【深度学习】通俗理解偏差(Bias)与方差(Variance)
人工智能·python·深度学习·算法·机器学习·集成学习
莲动渔舟9 小时前
Python自学 - 类进阶(可调用对象)
开发语言·python
Reese_Cool9 小时前
【Python】Python与C的区别
java·c语言·python
游客5209 小时前
设计模式-结构型-组合模式
python·设计模式·组合模式