python读取并显示图片的三种方法(opencv、matplotlib、PIL库)
作者:loadding... 发布时间:2023-03-24 19:43:02
标签:python,读取,图片
前言
在进行图像处理时,经常会用到读取图片并显示出来这样的操作,所以本文总结了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?


猜你喜欢
- 一、APC缓存简介APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中
- 背景:在pycharm中运行正常,但是使用命令方式就提示没有模块解决方案在Python安装目录下的\Lib\site-packages文件夹
- 上下文管理器是一种 Python 构造,它提供了一个类似 try-finally 的环境,具有一致的接口和方便的语法,例如通过&ld
- cmp()方法返回两个数的差的符号: -1 如果 x < y, 0 如果 x == y, 或者 1 如果 x > y
- substr --- 取得部份字符串 语法 : string substr (string string, int start [, int
- 第一种,在方法后面加问号,然后执行,如 abs?第二种,光标移动到方法上面,按shift+tab,弹出文档,连续按选择文档详细程度补充知识:
- 该章节我们将要学习如何将 word 文件转为 PDF文件,其实网上有很多种生成 PDF 的教程,不过绝大多数都是以 windows 为主的,
- 关于数据库性能的故事面试时多多少少会讲到数据库上的事情,“你对数据库的掌握如何?”,什么时候最考验数据库的性能,答应主要方面上讲就是大数据量
- docutils 的官方工具地址为:https://docutils.sourceforge.io/目前的更新主要是在版本和使用手册的更新上
- 为满足用户的视觉追求及产品的背景图片的换肤功能,设计师难免在设计上会用到半透明的效果。因此页面重构师基于视觉及产品的需要,采用了PNG32的
- 无论何时,IE总是让页面制作者感到那么的黯然销魂,尤其是IE6,IE7次之,虽然IE8已经做了很大的改进,但由于XP用户的数量实在太大,而且
- 在前端调试的时候,跨域一直都是一个比较麻烦的问题,这个在之前的文章 关于跨域问题的一个解决方法 中其实已经讨论了一些可以使用的方法。如果要使
- 如下所示:distances = np.sqrt(np.sum(np.asarray(airportPosition - x_vals)**
- 骨架提取与分水岭算法也属于形态学处理范畴,都放在morphology子模块内。1、骨架提取骨架提取,也叫二值图像细化。这种算法能将一个连通区
- 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2
- 一、介绍QQ空间相册的个性化利器,能对照片进行效果的优化、文字编辑等等。从设计上使用了创新的手法,尽量减少用户的思考。其中,通过界面的特殊表
- django版本:1.4.21。一、准备工作1、新建项目和app[root@yl-web-test srv]# django-admin.p
- 概念节流 (throttle) 让一个函数不要执行的太频繁,减少执行过快的调用,叫节流去抖 (debounce) 去抖就是对于一定时间段的连
- 入门scipy.optimize中,curve_fit函数可调用非线性最小二乘法进行函数拟合,例如,现在有一个高斯函数想要被拟合则调用方法如
- 前言对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql的递归