Python 图像处理的库 Pillow,opencv 和 scikit-image 的基本用法

这篇博客介绍了Python中常用的图像处理库Pillow、scikit-image和OpenCV的基础用法。Pillow作为PIL的升级版,支持Python3,主要功能包括生成文字图片、与base64和Numpy数组的转换。scikit-image基于numpy,提供了丰富的图像处理功能。OpenCV是一个强大的库,虽然主要是C++实现,但提供了Python接口,适合复杂的图像处理任务。

基于python脚本语言开发的数字图片处理包有 PIL,Pillow,opencv,scikit-image等,其中:

  • PIL和Pillow只提供最基础的数字图像处理,功能有限。PIL只支持 Python2, Pillow是PIL的一个派生分支,支持 Python3.
  • opencv 实际上是一个c++库,只是提供了python接口,更新速度非常慢。
  • scikit-image 是基于scipy的一款图像处理包,它将图片作为 numpy 数组进行处理,与matlab一样。

Pillow 包的使用

安装:
pip install Pillow

Pillow 基本用法

from PIL import Image
from PIL import ImageGrab

# Image.open 打开图片
img = Image.open('picture.png')  

# 获取剪贴板中复制的图片
img = ImageGrab.grabclipboard()

# 显示图像
img.show()

# 旋转图像
new_img = img.rotate(90)  # 逆时针旋转 90 度

# 图像的镜面翻转
new_img = img.transpose(Image.FLIP_LEFT_RIGHT)  # 水平翻转
new_img = img.transpose(Image.FLIP_TOP_BOTTOM)  # 垂直翻转

# 重新设置图像大小
new_img = img.resize((1280, 1964
# 题目重述 你提出的问题是:“缺少必要的 Python 依赖(如 opencv-python, scikit-image)”。这是一个典型的 **环境配置问题**,属于“普通文本型”中的具体技术请求。 问题背景:你在使用某个 Python 程序或工具(如 Orange、图像处理脚本等)时,提示无法运行,原因是缺少关键的第三方,例如: - `opencv-python`(用于图像读取与处理) - `scikit-image`(用于高级图像分析) - 可能还包括 `numpy`, `pillow`, `matplotlib` 等依赖 我们将详细分析原因并提供完整解决方案。 --- # 详解 当 Python 程序报错类似: ```bash ModuleNotFoundError: No module named 'cv2' ModuleNotFoundError: No module named 'skimage' ``` 说明你的 Python 环境中未安装这些包。尽管你可能已安装 Python,但默认不包含这些科学计算图像处理,必须手动安装。 --- ## ✅ 解决方案:安装缺失的依赖 ### 步骤 1:打开终端(MSYS2 或 Windows CMD/PowerShell) 确保你处于正确的 Python 环境中。如果你使用的是 MSYS2 提供的 Python,请运行: ```bash # 检查是否能调用 python python --version ``` 如果提示命令不存在,请确认已安装 `python` 包: ```bash pacman -S python ``` --- ### 步骤 2:使用 pip 安装所需 在终端中依次执行以下命令: ```bash # 安装 OpenCV(用于图像加载、预处理) pip install opencv-python # 安装 scikit-image(用于图像特征提取、滤波等) pip install scikit-image # 推荐一并安装其他常用依赖 pip install numpy pillow matplotlib ``` > ⚠️ 注意: > - 使用 `pip` 而不是 `pacman` 来安装这些包,因为 PyPI 上版本更新更快; > - 若提示权限问题,可加 `--user` 参数: > ```bash > pip install --user opencv-python > ``` --- ### 步骤 3:验证安装是否成功 创建一个测试脚本: ```python import cv2 from skimage import filters, io import numpy as np print("All libraries imported successfully!") ``` 保存为 `test_import.py` 并运行: ```bash python test_import.py ``` 若无报错,则说明安装成功。 --- ## ❌ 常见问题及应对 | 问题 | 原因 | 解决方法 | |------|------|----------| | `pip command not found` | pip 未安装 | 运行 `python -m ensurepip` | | `Could not find a version` | 网络不通或源慢 | 更换 pip 源:<br>`pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python` | | `ERROR: Could not build wheels` | 缺少编译工具 | 改用预编译包:<br>`pip install --only-binary=all opencv-python` | | 在 MSYS2 中安装失败 | MSYS2 自带编译环境冲突 | 使用原生 Python + pip,或改用 Conda | --- ## 🛠️ 替代方案:使用 Miniforge / Conda(推荐用于复杂项目) 对于涉及大量科学计算的项目,建议使用 **Miniforge** 或 **Anaconda** 来管理环境。 ### 示例(使用 conda): ```bash # 创建新环境 conda create -n image-env python=3.9 # 激活环境 conda activate image-env # 安装所有依赖 conda install opencv scikit-image numpy pillow # 或通过 pip 安装 pip install matplotlib ``` 优点:自动解决依赖冲突,支持二进制分发,避免编译错误。 --- # 总结 你遇到的“缺少必要的 Python 依赖”问题是常见的开发环境配置缺失。只需通过 `pip install` 安装对应包即可修复。 重点步骤: 1. 确保 `python` `pip` 已安装; 2. 执行: ```bash pip install opencv-python scikit-image ``` 3. 测试导入无误。 若网络慢,更换为清华、中科大 pip 镜像源。 --- # 知识点 - **pip 包管理机制**:Python 官方包管理工具,从 PyPI 下载并安装第三方- **OpenCVscikit-image 功能差异**:前者擅长图像操作与视频处理,后者侧重图像分析与滤波算法。 - **虚拟环境隔离优势**:使用 conda 或 venv 可避免依赖冲突,提升项目可维护性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值