我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

Python plt显示图片

文章目录

概述

对这篇博客内容的最最简要的总结,便于快速抓要点

# 显示曲线plt.plot(x,y)# 显示图像plt.imshow(image)# 显示曲线/图片时需要的一行。本地可以显示,服务器不太行plt.show() plt.savefig('xx.png') # 保存图片 fig.savefig('xx.png') 功能相同# 保存图片在本地需要写明图片完整目录,服务器中默认保存在当前执行目录

一、绘制曲线并显示 plt.plot

参考资料:【Python】 【绘图】plt.figure()的使用

以下是一张图中包含多张小图 的三种不同写法的汇总和拆解。

汇总

plt.subplot(221)plt.plot(x, y)fig,axes=plt.subplots(2,2)ax1=axes[0,0]ax1.plot(x, y)fig = plt.figure(figsize=(6, 3)) # 指定画图的大小ax = fig.add_subplot(1, 2, 1)ax.plot(x, y)

写法一

plt.subplot(221)plt.plot(x, x)plt.show()  /  %matplotlib inline # %的写法只在Jupyter中生效,见文末附录说明
import numpy as np  import matplotlib.pyplot as plt  x = np.arange(1, 101)  #作图1plt.subplot(221)  plt.plot(x, x)  #作图2plt.subplot(222)  plt.plot(x, -x)   #作图3plt.subplot(223)  plt.plot(x, x ** 2)  plt.grid(color='r', linestyle='--', linewidth=1, alpha=0.3)#作图4plt.subplot(224)  plt.plot(x, np.log(x))  plt.show()  # 删除本行,增加%matplotlib inline 也可以显示出图像 

在这里插入图片描述

写法二

fig,axes=plt.subplots(2,2)ax1=axes[0,0]ax1.plot(x, x)plt.show() 
import numpy as np  import matplotlib.pyplot as pltx = np.arange(1, 101)  #划分子图fig,axes=plt.subplots(2,2)ax1=axes[0,0]ax2=axes[0,1]ax3=axes[1,0]ax4=axes[1,1]#作图1ax1.plot(x, -x)  #作图2ax2.plot(x, x) #作图3ax3.plot(x, x ** 2)ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)#作图4ax4.plot(x, np.log(x))  plt.show() 

在这里插入图片描述

写法三

fig = plt.figure(figsize=(6, 3)) # 指定画图的大小ax = fig.add_subplot(1, 2, 1)ax.plot(x, y)plt.show() 
import numpy as npimport matplotlib.pyplot as plt# %matplotlib inlinefig = plt.figure(figsize=(6, 3))ax = fig.add_subplot(1, 2, 1)x = np.linspace(-5, 5, 100)y = x**2ax.plot(x, y, 'r-')ax = fig.add_subplot(1, 2, 2)x = np.linspace(-5, 5, 100)y = x**3ax.plot(x, y, 'r-')plt.show() 

在这里插入图片描述

二、打开图片并显示 plt.imshow

已知的读取图片方式有两种:cv2、Image,初略讲解如下,有需要更多讲解的再单独整合。

写法一 cv2

参考资料
opencv 因为历史原因, 读入的图片的格式是BGRmatplotlib的图片格式默认是RGB格式的。所以,当用cv2读入图片然后用matplotlib显示的时候,R通道变成了B通道, B通道变成了R通道, 所以显示会很阴间。如果想要正确显示图像,就需要使用cvtColor进行颜色空间的转换,从BGR转换为RGB。

关键代码

image = cv2.imread(image_path)image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)fig, ax = plt.subplots(1,2)ax[0].imshow(image)cv2.imwrite("1.jpg",image) # 保存图片

举例

import cv2import matplotlib.pyplot as pltimage_path = r"C:\\Users\\shmily\\Desktop\\file1.jpg"image = cv2.imread(image_path)h, w, _ = image.shapeimage_size = 448img = cv2.resize(image, dsize=(image_size, image_size), interpolation=cv2.INTER_LINEAR)h1, w1, _ = img.shapeprint(h,w,h1,w1)fig, ax = plt.subplots(1,2)image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 改变显示的颜色img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) ax[0].imshow(image) # ,cmp='gray')ax[1].imshow(img)plt.show()

不进行 cv2.cvtColor 的结果

在这里插入图片描述

进行了颜色转变的结果
在这里插入图片描述

写法二 Image

关键代码

img = np.array(Image.open(img_path)) plt.figure()plt.imshow(img)

举例

from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltimg_path = r"C:\\Users\\shmily\\Desktop\\file1.jpg"img = np.array(Image.open(img_path)) plt.figure()plt.imshow(img)plt.show()

附录

1、%matplotlib inline 说明

在这里插入图片描述

2、随手补充内容

隐藏坐标系

plt.axis('off')

来源地址:https://blog.csdn.net/lwqian102112/article/details/128358602

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python如何利用cv2模块读取显示保存图片

1. 读取图片使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道 c
2022-06-02

openCV-Python笔记之解读图像的读取、显示和保存问题

这篇文章主要介绍了openCV-Python笔记之解读图像的读取、显示和保存问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-14

python简单图片操作:打开显示保存图像方法介绍

一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1、不开源,价格贵 2、软件容量大。一般3G以上,高版本甚至达5G以上。 3、只能做研究,不易转化成软件。 因此,我们这里使用python这个脚本语言来进
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录