【Python】Matplotlib-多张图像的显示

这篇具有很好参考价值的文章主要介绍了【Python】Matplotlib-多张图像的显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,情景描述

大家在写论文或者实验报告的时候,经常会放多张图片或数据图像在一起形成对比。比如,我现在有一张经过椒盐噪声处理的图像,现在进行三种滤波,分别是均值,高斯,中值滤波,共计四张图像,怎么才能将他们利用matplotlib库放置到一起呢?跟着我一起来写代码吧!

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能

二,实现原理

1.读取图像

用cv2.imread()函数读取原始图像,图像文件放置在了项目文件夹下,图像需要时opencv支持的图像格式(如jpg,png等等)具体见链接:《OpenCV支持的图片格式》_opencv保存windows可以打开的类型-CSDN博客

# encoding:utf-8
import cv2
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

img_1 = cv2.imread('sp_noise.jpg')
img_2 = cv2.imread('medianBlur.jpg')
img_3 = cv2.imread('mean.jpg')
img_4 = cv2.imread('Gaussian.jpg')

2.将BGR转化为RGB

将图像色彩显示转化为RGB通道,否则后续利用matplotlib显示图像的时候会发生色彩通道不兼容导致色彩出现偏差。具体原因见我写的博客:【Bug】当用opencv库的imread()函数读取图像,用matplotlib库的plt.imshow()函数显示图像时,图像色彩出现偏差问题的解决方法-CSDN博客

# 将BGR图像转换为RGB
img_1 = cv2.cvtColor(img_1, cv2.COLOR_BGR2RGB)
img_2 = cv2.cvtColor(img_2, cv2.COLOR_BGR2RGB)
img_3 = cv2.cvtColor(img_3, cv2.COLOR_BGR2RGB)
img_4 = cv2.cvtColor(img_4, cv2.COLOR_BGR2RGB)

3.显示图像

# 显示图形
titles = ['噪声图像', '中值滤波', '均值滤波 ', '高斯滤波'] # 设置每个图像的标题
images = [img_1, img_2, img_3, img_4] #将图像存储到images列表里面

 将每个图像标题和图像分别储存到titles和images列表里,方便后续取用,图像标题与图像一一对应,有多少图像存入列表多少。 

for i in range(4):
    plt.subplot(2, 2, i + 1)
    plt.imshow(images[i])
    plt.title(titles[i])
    plt.xticks(), plt.yticks()
plt.show()

for i in range(4):启动一个循环,循环四次,有多少个图像循环多少次,每次循环代表对一个图像的处理。

plt.subplot(2, 2, i + 1):在Matplotlib中创建一个2x2的子图网格i 的值在每次循环中分别为0,1,2,3,则i + 1 表示子图的位置,即1,2,3,4,下图是2x2的子图网格。

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能

如果是plt.subplot(1, 4, i + 1),则创建是1x4的子图网格,即一行四列。如图:

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能

plt.imshow(images[i])然后使用 plt.imshow 显示列表中的图像,当第一次循环时,i=0,即取出images[0],即第一张图,放到i+1=1的位置。

plt.title(titles[i])设置当前子图的标题,根据 titles 中的标题列表选择相应的标题。

plt.xticks([]), plt.yticks([])隐藏坐标轴,这将使图像更干净,不显示坐标刻,如果去掉参数[],即显示坐标轴:

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能

三,完整代码


# encoding:utf-8
import cv2
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

img_1 = cv2.imread('sp_noise.jpg')
img_2 = cv2.imread('medianBlur.jpg')
img_3 = cv2.imread('mean.jpg')
img_4 = cv2.imread('Gaussian.jpg')
# 将BGR图像转换为RGB
img_1 = cv2.cvtColor(img_1, cv2.COLOR_BGR2RGB)
img_2 = cv2.cvtColor(img_2, cv2.COLOR_BGR2RGB)
img_3 = cv2.cvtColor(img_3, cv2.COLOR_BGR2RGB)
img_4 = cv2.cvtColor(img_4, cv2.COLOR_BGR2RGB)
# 显示图形
titles = ['噪声图像', '中值滤波', '均值滤波 ', '高斯滤波']
images = [img_1, img_2, img_3, img_4]
for i in range(4):
    plt.subplot(2, 2, i + 1)
    plt.imshow(images[i])
    plt.title(titles[i])
    plt.xticks([]), plt.yticks([])
plt.show()

实现效果:

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能

今日一笑:

 《天津中德应用技术大学助学金之原来我才是贫困生》

python plt显示多张图,Python知识讲解,计算机视觉,图像处理,人工智能文章来源地址https://www.toymoban.com/news/detail-767351.html

到了这里,关于【Python】Matplotlib-多张图像的显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • (P4)Python plt显示和保存图像(cv2、Image)

    (P4)Python plt显示和保存图像(cv2、Image)

    对这篇博客内容的最最简要的总结,便于快速抓要点 以下是一张图中包含多张小图 的三种不同写法的汇总和拆解。 汇总 ⭐ 写法一 写法二 写法三 已知的读取图片方式有两种:cv2、Image,初略讲解如下,有需要更多讲解的再单独整合。 写法一 cv2 参考资料 opencv 因为历史原因

    2024年01月24日
    浏览(17)
  • python 图像处理——关于plt.imshow显示cv2.imread读取的图像有“色差”、“发蓝”问题的解决方法

    python 图像处理——关于plt.imshow显示cv2.imread读取的图像有“色差”、“发蓝”问题的解决方法

    使用cv2.imread()读取图像时,默认彩色图像的三通道顺序为B、G、R,这与我们所熟知的RGB中的R通道和B通道正好互换位置了。 而使用plt.imshow()函数却默认显示图像的通道顺序为R、G、B,导致图像出现色差发蓝。 彩色图像出现色差代码: 运行结果如图1-1所示,其颜色偏蓝,怪吓

    2024年02月01日
    浏览(10)
  • python中图片读取和保存以及plt.imshow()与cv2.imshow()显示图像颜色错误解决方案

    python中图片读取和保存以及plt.imshow()与cv2.imshow()显示图像颜色错误解决方案

    最近调试程序的时候,发现要保存的图片颜色与原图片有色差(显示图像变蓝),郁闷良久,终于发现问题,望诸君避坑。 🧸在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。 🎯原因:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式。 单独使用图像是

    2024年02月11日
    浏览(11)
  • Python Matplotlib 中如何用 plt.savefig 存储图片

    Python Matplotlib 中如何用 plt.savefig 存储图片

    plt.show()展示图片的时候,截图进行保存,图片不是多么清晰 如何保存高清图也是一知识点 函数包名: import matplotlib.pyplot as plt 主要功能 :保存绘制数据后创建的图形。使用此方法可以将创建的图形保存 函数源码: (根据需要进行选择) 参数解释: 参数 描述 fname 指定格式

    2024年02月01日
    浏览(6)
  • 【Python】【Matplotlib】深入解析plt.grid()---原理、应用与注意事项

    【Python】【Matplotlib】深入解析plt.grid()---原理、应用与注意事项

    【Python】【Matplotlib】深入解析plt.grid()—原理、应用、源码与注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更

    2024年04月09日
    浏览(13)
  • 【Python】一文详细介绍plt.rcParams 在 Matplotlib 中的原理、作用、注意事项

    【Python】一文详细介绍plt.rcParams 在 Matplotlib 中的原理、作用、注意事项

    【Python】一文详细介绍plt.rcParams 在 Matplotlib 中的原理、作用、注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享

    2024年04月11日
    浏览(9)
  • 【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题

    【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题

    【Python】【Matplotlib】解决使用 plt.savefig() 保存的图片出现一片空白的问题 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分

    2024年03月22日
    浏览(8)
  • 【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?

    【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么?

    【Python】【Matplotlib】fig, ax = plt.subplots() 返回的fig和ax是什么? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于

    2024年03月15日
    浏览(14)
  • 在Python中matplotlib函数的plt.plot()函数的颜色参数设置,以及可以直接运行的程序代码!

    在Python中matplotlib函数的plt.plot()函数的颜色参数设置,以及可以直接运行的程序代码!

    在matplotlib中, plt.plot()函数可以接受颜色参数 ,可以设置为 字符串颜色(如\\\'red\\\') ,也可以设置为 十六进制颜色 (如’#FF0000’表示红色),也可以设置为 RGB元组(如(1,0,0)表示红色) 。 如果想要用数值(如0,1)来设置颜色,可以使用 颜色映射(Colormap) 。 在matplotlib中

    2024年02月04日
    浏览(7)
  • matplotlib多图合一的四种实现(多张图显示在一个figure中)

    matplotlib多图合一的四种实现(多张图显示在一个figure中)

    使用 plt.subplot(rownum, columnnum, index) 说明新图纸是几行几列的 使用 plt.subplot2grid(总格数, 起始格数, rowspan, colspan) 来绘制 首先使用 gridspec.GridSpec(rownum, colnum) 声明将figure分割成几块,然后在绘图时使用切片声明使用哪几块即可

    2024年01月21日
    浏览(3)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包