Python处理图像数据时通常需要对图像文件进行读取、保存等操作,因此将现有的方法归纳了一下。

1. PIL

依赖包:Pillow

安装:pip install Pillow

源码:

 1 import numpy as np
2 from PIL import Image
3 import matplotlib.pyplot as plt
4
5 image = Image.open("image.jpg")
6
7 image_resize = image.resize((128, 128))
8 image_array = np.array(image_resize)
9 image_output = Image.fromarray(image_array)
10 image_output.save("image_output.jpg")
11
12 plt.imshow(image_output)
13 plt.axis("off")
14 plt.show()

2. opencv

依赖包:opencv-python

安装:pip install opencv-python

源码:

 1 import cv2
2
3 image = cv2.imread("image.jpg")
4
5 image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
6 image_resize = cv2.resize(image, (128, 128))
7
8 cv2.imwrite("image_output.jpg", image_gray)
9 cv2.namedWindow("img_out")
10 cv2.imshow('img_out',image_gray)
11 cv2.waitKey(0)
12 cv2.destroyAllWindows()

3. imageio

依赖包:imageio

安装:pip install imageio

源码:

 1 from imageio import imread, imsave
2 from scipy import ndimage
3 import matplotlib.pyplot as plt
4
5 image = imread("image.jpg")
6
7 img_rote_20 = ndimage.rotate(image, 20)
8 imsave("image_out.jpg", img_rote_20)
9
10 plt.imshow(img_rote_20)
11 plt.axis("off")
12 plt.show()

4. skimage (recommend to use)

依赖包:scikit-image

安装:pip install scikit-image

源码:

1 from skimage import io
2 import matplotlib.pyplot as plt
3
4 image = io.imread("image.jpg")
5
6 io.imsave("image_output.jpg", image)
7
8 io.imshow(image)
9 plt.show()

5. matplotlib

依赖包:matplotlib

安装:pip install matplotlib

源码:

 1 import matplotlib.image as mpimg
2 import matplotlib.pyplot as plt
3
4 image = mpimg.imread("image.jpg")
5
6 mpimg.imsave("image_output.jpg", image)
7
8 plt.imshow(image)
9 plt.axis("off")
10 plt.show()

7. keras (machine learning or deep learning)

依赖包:keras

安装:pip install keras

源码:

1 from keras.preprocessing import image
2
3 img = image.load_img("image.jpg", target_size=(128, 128))
4
5 image_array = image.img_to_array(img)
6 image_output = image.array_to_img(img)
7
8 image_output.save("image_output.jpg")

上述七种方法均可以对图像文件进行读取保存处理,对日常cv预处理图像非常有帮助。

Python读取保存图像文件的更多相关文章

  1. Python 读取图像文件的性能对比

    Python 读取图像文件的性能对比 使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Pytho ...

  2. python读取,显示,保存mnist图片

    python处理二进制 python的struct模块可以将整型(或者其它类型)转化为byte数组.看下面的代码. # coding: utf-8 from struct import * # 包装成 ...

  3. python读取excel一例-------从工资表逐行提取信息

    在工作中经常要用到python操作excel,比如笔者公司中一个人事MM在发工资单的时候,需要从几百行的excel表中逐条的粘出信息,然后逐个的发送到员工的邮箱中.人事MM对此事不胜其烦,终于在某天请 ...

  4. python 读取图片的尺寸、分辨率

    #需要安装PIL模块 #encoding=gbk#--------------------------------------------------------------------------- ...

  5. 【转】Python——读取html的table内容

    Python——python读取html实战,作业7(python programming) 查看源码,观察html结构 # -*- coding: utf-8 -*- from lxml.html ...

  6. Python读取excel中的图片

    作为Java程序员,Java自然是最主要的编程语言.但是Java适合完成大型项目,对于平时工作中小的工作任务,需要快速完成,易于修改和调试,使用Java显得很繁琐,需要进行类的设计,打成jar包,出现 ...

  7. python读取指定字节长度的文本

    软件版本 Python 2.7.13;   Win 10 场景描述 1.使用python读取指定长度的文本: 2.使用python读取某一范围内的文本. Python代码 test.txt文本内包含的 ...

  8. 【Python】Python 读取csv的某行或某列数据

    Python 读取csv的某行 转载 2016年08月30日 21:01:44 标签: python / csv / 数据   站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Gith ...

  9. python读取 ini 配置文件

    在详解python读取ini文件之前,我们先说明一个ini文件的组成: 一个ini文件是由多个section组成,每个section中以key=vlaue形式存储数据: 然后我们来使用python读取 ...

  10. python读取txt文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte sequence

    python读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte ...

随机推荐

  1. sqli-laba靶场搭建

    windows下安装sqli-laba 环境:windows10 安装phpstudy 1.下载并安装小皮面板phpstudy(傻瓜式安装) https://www.xp.cn/windows-pan ...

  2. [WPF]使用Fody提高效率

    下载安装及使用 代码实例 public class Person:INotifyPropertyChanged { public event PropertyChangedEventHandler P ...

  3. Python自动批量修改文件名称的方法

      本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法.   已知现有一个文件夹,其中包括班级所有同学上交的作业文件,每人一份:所有作业文件命名格式统一,都是地信1701_姓 ...

  4. SpringBoot+Vue前后端分离项目,在过滤器取值为Null

    SpringBoot+Vue前后端分离项目,在过滤器取值为Null 是因为SessionID的问题,因为axios每次的请求都是一次新的sessionId,所以只需要在main.js下配置如下 axi ...

  5. Idea 2022 springboot 3.0 druid: testWhileIdle is true, validationQuery not set

    druid启动错误解决方法: Druid连接池 :严重: testWhileIdle is true, validationQuery not set 增中配置 在 application.yml 增 ...

  6. Eclpis-cannot open git-receive-pack

    转载:https://blog.csdn.net/qq_29954971/article/details/80191193 问题:在采用MyEclipse软件(JDK1.7)作为开发环境,利用GitH ...

  7. vue 事件中央总线

    vue 事件中央总线 作用: 实现任意组件间的通信 实现的方法: 有以下两种方式 方式1: 全局事件总线 1.在main.js文件中定义 new Vue({ el: '#app', router, s ...

  8. 4.12 疫情数据可视化 毕设(初稿版 crud+可视化echarts

    4.22 完成地图 数据可视化~~~  599x150 解决不显示图片的问题 参考文档 https://blog.csdn.net/qq_51917985/article/details/121380 ...

  9. 删除resource中的图片后编译报错

    同僚的一篇文章是:https://www.cnblogs.com/jljxxf/archive/2012/08/19/2646937.html, 详细介绍了C#的Resources,其中关于删除资源这 ...

  10. TS在实际开发中的使用

    TS的基础使用 // 数字 let num = ref<number>(100) // 文字 let str = rer<string>('文字') // boolean le ...