前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python读取并显示图片的三种常用方法

Python读取并显示图片的三种常用方法

作者头像
用户9925864
发布2022-07-27 08:49:35
2K0
发布2022-07-27 08:49:35
举报
文章被收录于专栏:算法工程师的学习日志

前言

在进行图像处理时,经常会用到读取图片并显示出来这样的操作,所以本文总结了python中读取并显示图片的3种方式,分别基于opencv、matplotlib、PIL库实现,并给出了示例代码,介绍如下。

OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

代码语言:javascript
复制
import matplotlib.pyplot as plt  # plt 用于显示图片
import cv2

# opencv的颜色通道顺序为[B,G,R],而matplotlib颜色通道顺序为[R,G,B],所以需要调换一下通道位置
img1 = cv2.imread('./1.png')[:, :, (2, 1, 0)]  # 读取和代码处于同一目录下的 1.png
img2 = cv2.imread('./1.png')[:, :, (2, 1, 0)]

# 结果展示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文乱码
plt.subplot(121)
# imshow()对图像进行处理,画出图像,show()进行图像显示
plt.imshow(img1)

plt.title('图像1')
# 不显示坐标轴
plt.axis('off')

# 子图2
plt.subplot(122)
plt.imshow(img2)
plt.title('图像2')
plt.axis('off')

# #设置子图默认的间距
plt.tight_layout()
# 显示图像
plt.show()

Matplotlib

Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

代码语言:javascript
复制
import matplotlib.pyplot as plt  # plt 用于显示图片
import matplotlib.image as mpimg  # mpimg 用于读取图片

img1 = mpimg.imread('./1.png', 0)  # 读取和代码处于同一目录下的 1.png
img2 = mpimg.imread('./2.png', 0)

# 结果展示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文乱码
plt.subplot(121)
# imshow()对图像进行处理,画出图像,show()进行图像显示
plt.imshow(img1)

plt.title('图像1')
# 不显示坐标轴
plt.axis('off')

# 子图2
plt.subplot(122)
plt.imshow(img2)
plt.title('图像2')
plt.axis('off')

# #设置子图默认的间距
plt.tight_layout()
# 显示图像
plt.show()

PIL

PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。

PIL可以做很多和图像处理相关的事情:

  • 图像归档(Image Archives)
  • 图像展示(Image Display)
  • 图像处理(Image Processing)
代码语言:javascript
复制
import matplotlib.pyplot as plt  # plt 用于显示图片
from PIL import Image

img1 = Image.open('./1.png')
img2 = Image.open('./2.png')

# 结果展示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文乱码
plt.subplot(121)
plt.imshow(img1)
plt.title('图像1')
# 不显示坐标轴
plt.axis('off')

# 子图2
plt.subplot(122)
plt.imshow(img2)
plt.title('图像2')
plt.axis('off')

# #设置子图默认的间距
plt.tight_layout()
# 显示图像
plt.show()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Matplotlib
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档