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. 笑死,面试官又问我SpringBoot自动配置原理

    面试官:好久没见,甚是想念.今天来聊聊SpringBoot的自动配置吧? 候选者:嗯,SpringBoot的自动配置我觉得是SpringBoot很重要的"特性"了.众所周知,Spr ...

  2. Python实验报告(第2章)

    实验2:Python语言基础 一.实验目的和要求 1.了解Python的编写规范要求: 2.了解Python的基本数据类型: 3.学会使用Python的五种运算符: 4.掌握Python的基本输入和输 ...

  3. 【转载】SQL SERVER 通过对汉字、字母和数字的Unicode码区间的判断来识别字符串

    A~Z :65~90 a~z :97~122 0-9 : 48-57   –汉字unicode编码范围:[0x4e00,0x9fa5](或十进制[19968,40869])   SELECT * FR ...

  4. [OpenCV实战]12 使用深度学习和OpenCV进行手部关键点检测

    目录 1 背景 2 实现 3 结果和代码 4 参考 手部关键点检测是在手指上找到关节以及在给定图像中找到指尖的过程.它类似于在脸部(面部关键点检测)或身体(人体姿势估计)上找到关键点.但是手部检测不同 ...

  5. python之路41 前端页面尝试 丑出新高度

    边框 p {/* 左边 */ font-size: 48px; border-left-width: 5px; border-left-style: dotted; /*点点边框*/ border-l ...

  6. C++ 使用 new 创建二维数组

    1. 直接创建 C++ 使用 new 创建二维数组最直接的方法就是 new T[M][N].返回的指针类型是 T (*)[N],它是指向数组的指针,可以直接使用数组下标形式访问元素.释放内存直接使用d ...

  7. P8775 [蓝桥杯 2022 省 A] 青蛙过河

    简要题意 有一只青蛙在 \(1\) 处,有一些石头,位于 \(2,3,4,\cdots n\),它们的高度是 \(H_2,H_3,\cdots,H_n\).青蛙每落一次石头,该石头的高度就会 \(-1 ...

  8. Three.js 进阶之旅:新春特典-Rabbit craft go 🐇

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 摘要 兔年到了,祝大家身体健,康万事顺利.本文内容作为兔年新春纪念页面,将使用 ...

  9. jupyter的配置

    step1.安装jupyter 使用pip或者conda等包管理工具安装jupyter(这部分倒是没有任何难度,一般也没有什么坑) conda install jupyter notebook或者pi ...

  10. 移动 WEB 布局方式之 rem 适配布局 ---- 苏宁首页案例制作

    一.技术选型 二.搭建相关文件夹结构 三.设置视口标签以及引入初始化样式 四.设置公共common.less 文件 common.less //设置常见的屏幕尺寸大小,修改里面的html 文字大小 / ...