温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python图像处理库怎么用

发布时间:2026-01-10 17:09:57 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

Python 图像处理库快速上手

一 常用库与适用场景

  • Pillow:PIL 的现代分支,API 简洁,适合裁剪、缩放、格式转换、加水印、基础滤镜等日常图像编辑。
  • OpenCV:计算机视觉库,擅长边缘检测、阈值分割、特征提取、视频处理等进阶任务。
  • scikit-image:基于 NumPy/SciPy,提供丰富的滤波、变换、分割、形态学等科学图像处理算法。
  • 辅助工具:Matplotlib(可视化)、NumPy(数组运算)、imageio(轻量读写)。
    以上库均可通过 pip 安装,适合从入门到进阶的不同需求。

二 安装与导入

  • 安装命令(建议一次性安装常用组合):
    • pip install pillow opencv-python scikit-image matplotlib numpy imageio
  • 导入示例:
    • from PIL import Image
    • import cv2
    • from skimage import io
    • import matplotlib.pyplot as plt
    • import numpy as np
      上述安装与导入方式覆盖主流使用场景,便于后续示例直接运行。

三 通用处理流程与最小示例

  • 流程要点:安装库 → 读取图像 → 处理(缩放、裁剪、旋转、滤波/阈值等)→ 显示/保存 → 资源清理(如 GUI 窗口)。
  • 最小可用示例(以 Pillow 为例):
    • from PIL import Image
    • img = Image.open(‘input.jpg’) # 读取
    • img_resized = img.resize((800, 600)) # 缩放
    • img_resized.save(‘output.jpg’) # 保存
  • 批量处理模板(Pillow):
    • import os
    • from PIL import Image
    • in_dir, out_dir = ‘images’, ‘out’
    • os.makedirs(out_dir, exist_ok=True)
    • for f in os.listdir(in_dir):
      • if f.lower().endswith((‘.jpg’, ‘.png’)):
        • img = Image.open(os.path.join(in_dir, f))
        • img_resized = img.resize((800, 800))
        • img_resized.save(os.path.join(out_dir, f))
          以上流程与示例可直接复用,适合自动化脚本与批处理任务。

四 常见任务代码对照

任务 Pillow OpenCV scikit-image
读取/显示 Image.open;img.show() cv2.imread;cv2.imshow + waitKey/destroyAllWindows io.imread;io.imshow/show
缩放 img.resize((w,h)) cv2.resize(img,(w,h)) resize(image, (h,w))
裁剪 img.crop((l,t,r,b)) img[y1:y2, x1:x2] image[y1:y2, x1:x2]
旋转 img.rotate(45) M=getRotationMatrix2D(center,45,1.0); warpAffine rotate(image, 45)
灰度 img.convert(‘L’) cv2.cvtColor(img,COLOR_BGR2GRAY) color.rgb2gray
高斯模糊 img.filter(ImageFilter.GaussianBlur(5)) cv2.GaussianBlur(img,(5,5),0) filters.gaussian(image, sigma=1)
边缘检测 cv2.Canny(gray,100,200) feature.canny(gray, sigma=1)
保存 img.save(‘out.png’) cv2.imwrite(‘out.png’,img) io.imsave(‘out.png’,image)
说明:表中函数名与参数可直接用于对应库的入门实践;OpenCV 读取为 BGR,显示或保存前常需转换为 RGB

五 实战要点与避坑

  • 颜色空间与显示
    • OpenCV 默认 BGR,用 Matplotlib/其他工具显示时应转换为 RGB:img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)。
  • 透明度与格式
    • JPEG 不支持透明通道(Alpha)。将 PNG(RGBA) 直接保存为 JPG 会报错,需先转换:img = img.convert(‘RGB’) 再保存为 JPG。
  • 保持宽高比缩放
    • 建议按比例计算目标尺寸,避免变形:new_w = int(w * scale); new_h = int(h * scale)。
  • 大图与内存
    • 处理超大图像时可分块/下采样;必要时使用更高效的算法与数据类型,及时释放不再使用的对象。
  • 文件格式选择
    • JPG 适合照片类;PNG 适合需要透明与无损;WebP 在网页场景具更好体积/质量权衡。
      以上要点覆盖颜色空间、格式兼容、缩放策略、内存与格式选择等常见坑位。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI