Python读取保存图像文件
2024-09-08 06:10:44
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预处理图像非常有帮助。
最新文章
- https采集12306(复制)
- iframe替代方案
- os.getcwd()
- 把json格式对象转成可提交字符串格式,会过滤掉函数 {a: {b: 3}, b: [1], c: ";d";} ->; a.b=3&;b[0]=1&;c=d
- 考虑virtual函数以外的其它选择
- WebConfig特殊字符的转义!
- Activity设置singleTask无法通过Intent获取值的问题
- google官方的下拉刷新+自定义上拉加载更多
- Django学习-5-模板渲染
- ES6你不知道的let关键字及变量的提升
- django模板(template)
- CF258D Little Elephant and Broken Sorting (带技巧的DP)
- [Functional Programming] Arrow contramap vs map and promap
- MyBatis 作用域和生命周期
- linux下安装java jdk
- windows系统查看端口占用程序方法
- Python -- 使用pickle 和 CPickle对数据对象进行归档和解析
- Kotlin Reference (二) Idioms
- MongoDb企业应用实战(一) 写在MongoDB应用介绍之前(ii)
- 将 xml 文件 转为 DataTable
热门文章
- 第一章 --------------------WPF基础概述
- Maven多模块管理
- IdentityServer4 - V4 概念理解及认证授权过程
- 基于Java的高并发多线程分片断点下载
- Spark详解(04) - Spark项目开发环境搭建
- CLISP学习(一)
- 8. 字符串转整数 (atoi)
- [cocos2d-x]捕鱼达人鱼和子弹的碰撞检测
- P1005 [NOIP2007 提高组] 矩阵取数游戏
- three.js实现分模块添加梦幻bloom辉光光晕方案--详细注释版本~~方案三版本~~