Python图像处理:读取、转换格式与调整大小
16 浏览量
更新于2023-03-03
收藏 28KB PDF 举报
"这篇文章主要介绍了如何使用Python读取图片并修改其格式和大小。通过使用PIL(Python Imaging Library)和OpenCV库,我们可以轻松实现这些功能。文章提供了一个具体的代码示例,演示了如何遍历指定目录下的图片,读取它们,然后将图片尺寸调整为50x50像素,并保存为新的格式。"
在Python编程中,处理图像是一项常见的任务。本文主要讲解了使用Python进行图像处理的两种关键库:PIL和OpenCV。PIL库主要用于图像的读取、修改和保存,而OpenCV则是一个强大的计算机视觉库,支持多种图像处理操作。
首先,导入必要的库:
```python
from PIL import Image
import os
import cv2
import numpy as np
```
其中,`PIL.Image`用于图像处理,`os`用于文件操作,`cv2`是OpenCV库,`numpy`用于处理数组数据。
接下来,定义一个函数`read_image`,用于遍历目录中的图片。虽然在提供的代码片段中,这个函数没有被调用,但它的存在表明作者原本打算实现一个递归遍历子目录的功能。
实际操作图片的代码段如下:
```python
root_path = r"/test/9/" # 操作文件路径
for root, dirs, files in os.walk(root_path):
for file in files:
srcImg = cv2.imread(root_path + "/" + str(file)) # 使用OpenCV读取图片
img = Image.open(root_path + "/" + str(file)) # 使用PIL打开图片
newImg = img.resize((50, 50), Image.BILINEAR) # 调整图片大小到50x50像素,使用双线性插值方法
cv2.imwrite(r'./img2/' + str(file), newImg) # 使用OpenCV保存调整大小后的图片
```
这段代码首先定义了要操作的图片目录`root_path`,然后使用`os.walk`遍历该目录及其子目录下的所有文件。对于每个文件,使用`cv2.imread`读取图片到`srcImg`,接着使用`Image.open`再次打开图片,这次是为了使用`resize`方法改变图片尺寸。`resize`接受一个元组作为参数,表示新尺寸,第二个参数`Image.BILINEAR`指定使用双线性插值,这是一种平滑缩放的方法,以减少缩放过程中的像素失真。最后,使用`cv2.imwrite`将处理后的图片保存到新的目录`./img2/`下。
在这个过程中,OpenCV和PIL结合使用,OpenCV用于读取和保存图片,PIL用于图片尺寸的调整。这样的组合可以灵活地处理各种图像操作,同时利用两个库的优点。本文的代码示例对于初学者理解Python在图像处理方面的应用非常有帮助,同时也展示了如何将不同库的功能结合起来解决实际问题。
2020-12-23 上传
2020-09-19 上传
2023-03-31 上传
2023-06-12 上传
2023-06-12 上传
2023-06-06 上传
2023-06-12 上传
2023-08-17 上传
weixin_38610070
- 粉丝: 2
- 资源: 940
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展