python读取和保存图片的三种方法

这篇具有很好参考价值的文章主要介绍了python读取和保存图片的三种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python读取和保存图片

opencv

import cv2
#load
img = cv2.imread('0.png')
#show
cv.imshow('title', img)
#save
cv2.imwrite('1_cv2.png',img)

可以看到opencv读取的图片数据类型是uint8格式(属于numpy),uint8是专门用于存储各种图像的(包括RGB,灰度图像等),范围是从0–255。
读取的形状为(H,W,C),BGR
python 读取png且存储,python,opencv,开发语言

matplotlib

import matplotlib.pyplot as plt
# load
img = plt.imread('0.png') 
#读取后的dtype为float32(属于numpy),范围是[0,1]
#读取后的形状是(H,W,C),RGB
# show
plt.imshow(img)
plt.axis('off')
plt.show()
# save
#plt.imsave('1_plt.png',img)

还有一个保存方式叫plt.savefig(),但是使用这种方式保存的时候,保存的图片会显示空白,参考了plt.savefig保存图片一片空白或者显示内容不完整、错乱后把plt.savefig()放在了show的前面得以解决。

import matplotlib.pyplot as plt
# load
img = plt.imread('0.png') 
#读取后的shape为
# show
plt.imshow(img)
plt.axis('off')
plt.savefig('1_plt2.png')
plt.show()

PIL

from PIL import Image
# load
img = Image.open('0.png')
#读取后形状是(W,H)
# show
img.show()
#save
img.save('1_pil.png')

但是使用PIL读取的图片,matplotlib保存的图片会显示错误。
原因是PIL读取的图片格式是PIL.JpegImagePlugin.JpegImageFile,形状为(W,H)
要先把格式转化为numpy,不管是plt还是cv2.imshow,在python中只认numpy.array

总结

读取图片的方式有3种,分别是matplotlib读取图片、opencv读取图片和PIL读取图片。在读取图片后,可以统一使用matplotlib工具包显示图片。但是需要注意的是 opencv 读取图片的情况,读取的图片是BGR通道排序,需要转为RGB通道。
另外注意,matplotlib使用时,plt.imshow(image)如果没有显示图片,在其后面加上plt.show()文章来源地址https://www.toymoban.com/news/detail-523659.html

到了这里,关于python读取和保存图片的三种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Golang 按行读取文件的三种方法

    Golang 是一种现代的编程语言,它具有高效、简洁和可扩展等特点,因此在各种领域广泛应用。在 Golang 中,读取文件是一个常见的操作。在本篇技术博客中,我将介绍如何在 Golang 中按行读取文件。 Golang 中有一个 bufio 包,它提供了 Scanner 类型,可以方便地按行读取文件。我

    2024年02月08日
    浏览(56)
  • CSS图片水平垂直居中的三种方法

    我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致。 其次最重要的是设置图片元素的vertical-align属性为middle,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式。 代码示例: 具体方式是先使用定位让图

    2024年02月13日
    浏览(47)
  • canvas绘制图片的三种方法(图文示例)

    查看专栏目录 canvas示例教程100+专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 如何使用canvas来绘制图片呢?这里有三种方法。 d

    2024年01月16日
    浏览(52)
  • css实现图片全屏铺满自适应的三种方法

    前两天做了一个登录页面,登录页面背景是一张图片。图片要铺满整个屏幕,当时再将整个图片铺满时,总是遇到各种问题:①.图片虽然铺满整个屏幕,但是图片变形了;②.图片没有变形,但是图片没有铺满整个屏幕。 background: url(\\\"bg.png\\\") no-repeat; height:100%;--- height:100vh; wi

    2024年02月13日
    浏览(36)
  • 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(66)
  • 怎么修改svg的颜色? img引入svg图片怎么修改颜色的三种方法

    效果图 此时css对svg文件无法生效,此时要用到CSS3滤镜filter中的drop-shadow,通过生产一个可指定颜色的阴影放置于svg的位置,并将原始svg移出视线 效果图 如果项目中用到svg比较多,前两种方法会比较啰嗦,每次写一遍方法二的样式比较麻烦,这时可以考虑封装组件, 结合实际需要

    2024年02月11日
    浏览(55)
  • 【Python】OpenCV读取视频帧并保存为图片

    vid = cv2.VideoCapture(0) VideoCapture()中参数是0,表示打开笔记本的内置摄像头 参数是视频文件路径则打开视频,如 vid= cv2.VideoCapture(\\\'video.mp4\\\') retval, frame = vid.read() vid.read()按帧读取视频 retval, frame是获vic.read()方法的两个返回值。其中retval是布尔值,如果读取帧是正确的则返回True,

    2023年04月12日
    浏览(43)
  • python中的三种注释方法

    在编写程序中,使用注释不会影响程序代码的执行,但可以使得代码通俗易懂,便于维护, 在python,一共有三种注释方法 法一 单行注释,使用#注释,一般放于句首,或者放在代码语句之后,要被注释的代码之前 例如: 法二 对于多行注释,使用单行注释效率不高,所以用三

    2024年02月02日
    浏览(52)
  • python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块,此外Python还提供了另外一种方法requests。 下面来看看三种方法是如何来下载文件的: 方法一: 方法二: 方法三: 看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成

    2024年02月16日
    浏览(54)
  • Python图像处理的三种方法

     前言:最近在做微观电子器件的表面缺陷检测,用pyqt5做一个调用海康威视的gige接口的工业相机界面,官网上的代码是用的tkinter去做的界面,tkinter修改界面都是要在代码上进行修改有点麻烦,我在官网给的basicdemo.py上修改成pyqt的界面,后续可以直接用qtdesigner进行修改很方

    2024年02月16日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包