python读取并显示图片的三种方法(opencv、matplotlib、PIL库)
作者:loadding... 时间:2023-03-24 19:43:02
前言
在进行图像处理时,经常会用到读取图片并显示出来这样的操作,所以本文总结了python中读取并显示图片的3种方式,分别基于opencv、matplotlib、PIL库实现,并给出了示例代码,介绍如下。
OpenCV
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
import matplotlib.pyplot as plt # plt 用于显示图片
import cv2
#opencv的颜色通道顺序为[B,G,R],而matplotlib颜色通道顺序为[R,G,B],所以需要调换一下通道位置
img1 = cv2.imread('./Lena.png')[:,:,(2,1,0)] # 读取和代码处于同一目录下的 lena.png
img2 = cv2.imread('./Lena.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。
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
img1 = mpimg.imread('./Lena.png') # 读取和代码处于同一目录下的 lena.png
img2=mpimg.imread('./Lena.png')
#结果展示
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)。
import matplotlib.pyplot as plt # plt 用于显示图片
from PIL import Image
img1 = Image.open('./Lena.png')
img2 = Image.open('./Lena.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()
运行结果
总结
来源:https://blog.csdn.net/qq_41137110/article/details/115665455?
标签:python,读取,图片
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Mysql数据库之Binlog日志使用总结(必看篇)
2024-01-20 20:15:16
numpy工程实践之np.savetxt()存储数据
2023-06-19 07:33:11
![](https://img.aspxhome.com/file/2023/5/59655_0s.png)
Python实现绘制圣诞树和烟花的示例代码
2022-03-22 16:22:20
![](https://img.aspxhome.com/file/2023/3/66423_0s.png)
Python fileinput模块使用实例
2021-11-28 09:01:18
asp如何终止浏览器的 CAHCE 页面?
2010-07-07 12:25:00
python创建和使用字典实例详解
2021-06-11 11:37:06
对Python发送带header的http请求方法详解
2022-02-06 11:44:59
Vue Cli与BootStrap结合实现表格分页功能
2024-05-09 15:21:44
python 获取谷歌浏览器保存的密码
2022-05-21 21:39:49
如何查询日期类型的数据?
2009-11-11 20:04:00
基于Python实现扑克牌面试题
2023-11-21 18:05:21
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2021-08-24 03:06:43
python人物视频背景替换实现虚拟空间穿梭
2023-06-11 06:58:30
![](https://img.aspxhome.com/file/2023/0/82690_0s.png)
利用JS提交表单的几种方法和验证(必看篇)
2023-08-17 16:43:22
Python+微信接口实现运维报警
2022-06-12 23:40:30
pytorch 利用lstm做mnist手写数字识别分类的实例
2023-01-31 03:15:38
使用Python中的reduce()函数求积的实例
2021-08-14 04:35:47
![](https://img.aspxhome.com/file/2023/3/121003_0s.jpg)
Python 中类的构造方法 __New__的妙用
2021-04-06 04:45:56
微信小程序实现录音
2024-04-22 13:25:41
![](https://img.aspxhome.com/file/2023/4/135694_0s.jpg)
Golang实现常见的限流算法的示例代码
2024-04-25 13:22:35