Python自学21 - Python处理图像

Python自学21 - Python处理图像

在数据可视化、自动化办公、AI 应用和多媒体开发中,图像处理是一个非常常见且实用的技能。Python 拥有丰富的图像处理库,可以轻松完成读取、编辑、转换、批量处理等任务。本文将带你快速入门 Python 图像处理的核心方法与实战技巧。


1️⃣ 常用图像处理库

库名 特点 适用场景
Pillow Python Imaging Library (PIL) 的升级版,简单易用 基础图像处理(裁剪、缩放、加水印)
OpenCV 功能强大,支持计算机视觉算法 图像识别、视频处理、机器视觉
scikit-image 基于 NumPy 的科学图像处理 图像分析、特征提取
imageio 轻量级读写图像/视频 格式转换、简单读取

建议:入门先用 Pillow ,进阶再结合 OpenCV


2️⃣ Pillow 基础操作

2.1 安装

bash 复制代码
pip install pillow

2.2 读取与保存图片

python 复制代码
from PIL import Image

# 打开图片
img = Image.open("example.jpg")

# 保存为 PNG 格式
img.save("output.png")

2.3 查看图像信息

python 复制代码
print(img.format)   # JPEG
print(img.size)     # (宽, 高)
print(img.mode)     # RGB

3️⃣ 常见图像处理操作

3.1 缩放与裁剪

python 复制代码
# 缩放
resized = img.resize((200, 200))
resized.save("resized.jpg")

# 裁剪 (左, 上, 右, 下)
cropped = img.crop((100, 100, 400, 400))
cropped.save("cropped.jpg")

3.2 旋转与翻转

python 复制代码
# 旋转 90 度
rotated = img.rotate(90)
rotated.save("rotated.jpg")

# 水平翻转
flipped = img.transpose(Image.FLIP_LEFT_RIGHT)
flipped.save("flipped.jpg")

3.3 添加滤镜

python 复制代码
from PIL import ImageFilter

blurred = img.filter(ImageFilter.BLUR)
blurred.save("blurred.jpg")

4️⃣ 批量处理图片

批量处理是自动化的核心场景,例如批量压缩、加水印、格式转换。

python 复制代码
import os
from PIL import Image

input_dir = "images"
output_dir = "output"

os.makedirs(output_dir, exist_ok=True)

for file in os.listdir(input_dir):
    if file.lower().endswith((".jpg", ".png")):
        img = Image.open(os.path.join(input_dir, file))
        img_resized = img.resize((800, 800))
        img_resized.save(os.path.join(output_dir, file))

5️⃣ 进阶:OpenCV 简单示例

bash 复制代码
pip install opencv-python
import cv2

# 读取图片
img = cv2.imread("example.jpg")

# 转灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 保存
cv2.imwrite("gray.jpg", gray)

6️⃣ 实战建议

  • 统一尺寸:批量处理前先确定目标尺寸,避免比例失真
  • 压缩优化 :保存时可调整 quality 参数减少文件体积
  • 格式转换:JPG 适合照片,PNG 适合透明背景,WebP 适合网页优化
  • 自动化脚本:将常用处理封装成函数,结合命令行参数批量执行

7️⃣ 小结

  • Pillow 适合快速入门和日常处理
  • OpenCV 适合计算机视觉和复杂图像分析
  • 批量处理 + 自动化脚本能极大提升效率
  • 图像处理不仅是美化,更是数据分析、AI 应用的重要前置步骤
相关推荐
通信仿真爱好者1 分钟前
第【17】期--考虑硬件损伤和不完美CSI的RIS-MISO系统的深度强化学习联合优化-python完整代码+参考文献
python·深度强化学习·ris
装不满的克莱因瓶8 分钟前
自然语言处理常见任务——从文本理解到生成式AI的完整任务体系
人工智能·pytorch·python·深度学习·ai·自然语言处理
ptc学习者12 分钟前
python 中描述符@property property 大概的样子
开发语言·python
zmzb010313 分钟前
Python课后习题训练记录Day129
开发语言·python
秋936 分钟前
Python工程师面试常问提问和回答(AI工程化方向 · 2026版)
人工智能·python·面试
炎武丶航39 分钟前
LeNet-5深度学习详解:从手写数字识别到代码实战
人工智能·python·深度学习·机器学习·ai·cnn·lenet
sitellla39 分钟前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频
TechWayfarer1 小时前
云服务器地域怎么选:用离线IP数据库识别用户来源并优化部署
服务器·数据库·python·tcp/ip·数据分析
梦想不只是梦与想1 小时前
Python 中的进程(Process)
python·进程·进程间通
郑洁文1 小时前
基于Python的恶意流量监测系统的设计与实现
开发语言·python