当前位置: 首页 > ai >正文

Python Imaging Library (PIL) 全面指南:Python Imaging Library (PIL)基础图像处理入门

PIL基本图像操作

学习目标

通过本课程,学员将掌握如何使用Python Imaging Library (PIL)进行基本的图像处理操作,包括打开、显示和保存图像,以及了解图像的基本属性如格式、大小和模式。

相关知识点

  • PIL基本图像操作

学习内容

1 PIL基本图像操作

在开始图像处理之前,首先需要了解如何使用PIL库来加载图像。PIL库提供了Image模块,其中的open()函数可以用来打开图像文件。这个函数接受一个文件路径作为参数,返回一个Image对象,该对象包含了图像的所有信息。

1.1 安装PIL库

在使用PIL之前,需要确保已经安装了Pillow库,因为PIL已经不再维护,Pillow是PIL的一个活跃分支,提供了相同的功能。可以通过pip安装Pillow:

%pip install pillow
1.2 打开图像

打开图像非常简单,只需要调用Image.open()函数即可。在开始之前需要先实验wget的方式进行图片的下载。

!wget --no-check-certificate https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/f11284f42ed511f0a34cfa163edcddae/example.png

下面是一个简单的例子,展示了如何打开一个图像文件:

from PIL import Image# 打开图像
img = Image.open('example.png')# 打印图像信息
print(img.format)  # 输出图像格式
print(img.size)    # 输出图像尺寸
print(img.mode)    # 输出图像模式

在这个例子中,首先从PIL模块中导入了Image类,然后使用Image.open()函数打开了一个名为example.png的图像文件。通过打印img对象的formatsizemode属性,可以获取图像的格式、尺寸和模式信息。

1.2.1 图像格式

图像的格式是指图像文件的类型,如JPEG、PNG等。在PIL中,可以通过format属性来获取图像的格式。这对于后续的图像处理和保存操作非常重要,因为不同的格式可能需要不同的处理方式。

1.2.2 图像尺寸

图像的尺寸是指图像的宽度和高度,通常以像素为单位。在PIL中,可以通过size属性来获取图像的尺寸。了解图像的尺寸对于裁剪、缩放等操作非常有用。

1.2.3 图像模式

图像的模式是指图像的颜色模式,如RGB、L(灰度)等。在PIL中,可以通过mode属性来获取图像的模式。不同的模式决定了图像的颜色信息如何存储,这对于图像的处理和显示非常重要。

1.3 显示和保存图像

在处理完图像后,通常需要将图像显示出来或保存到文件中。PIL提供了简单的方法来实现这些操作。

1.3.1 显示图像

显示图像可以使用Image对象的show()方法。这个方法会调用系统的默认图像查看器来显示图像。下面是一个简单的例子:


from PIL import Image# 打开图像
img = Image.open('example.png')# 显示图像
img.show()

在这个例子中,使用img.show()方法来显示图像。需要注意的是,show()方法在某些情况下可能不会立即显示图像,而是会在后台创建一个临时文件并调用查看器。

1.3.2 保存图像

保存图像可以使用Image对象的save()方法。这个方法接受一个文件路径作为参数,将图像保存到指定的文件中。下面是一个简单的例子:

from PIL import Image# 打开图像
img = Image.open('example.png')# 保存图像
img.save('output.jpg')
img.show()

在这个例子中,使用img.save('output.jpg')方法将图像保存为output.jpgsave()方法还可以接受其他参数,如图像格式、质量等,这些参数可以根据需要进行设置。

1.4 图像的基本属性

了解图像的基本属性对于图像处理非常重要。PIL提供了多种方法来获取和操作这些属性。

1.4.1 获取图像格式

如前所述,可以通过format属性来获取图像的格式。这对于确定图像的类型和后续处理非常有用。

1.4.2 获取图像尺寸

通过size属性可以获取图像的尺寸。这对于裁剪、缩放等操作非常重要。例如,如果需要将图像缩放到特定的尺寸,可以使用resize()方法:

from PIL import Image# 打开图像
img = Image.open('example.png')# 缩放图像
new_img = img.resize((800, 600))# 保存缩放后的图像
new_img.save('resized.jpg')
new_img.show()

在这个例子中,使用resize()方法将图像缩放到800x600像素,然后保存为resized.jpg

1.4.3 获取图像模式

通过mode属性可以获取图像的颜色模式。这对于图像的处理和显示非常重要。例如,如果需要将彩色图像转换为灰度图像,可以使用convert()方法:

from PIL import Image# 打开图像
img = Image.open('example.png')# 转换为灰度图像
gray_img = img.convert('L')# 保存灰度图像
gray_img.save('gray.jpg')
gray_img.show()

在这个例子中,使用convert('L')方法将图像转换为灰度模式,然后保存为gray.jpg

http://www.xdnf.cn/news/18917.html

相关文章:

  • 【图像处理基石】DCT在图像处理中的应用及实现
  • 从零开始学习JavaWeb-20
  • 第二十节:3D文本渲染 - 字体几何体生成与特效
  • Node.js终极文本转图指南
  • 使用 Action 自动部署 VuePress 到 GitHub Pages
  • Webdriver-Manager 4.0.1启动错误解决
  • Komo Searc-AI驱动的搜索引擎
  • 区块链+隐私计算护航“东数西算”数据安全报告
  • 20.22 QLoRA微调实战:中文语音识别数据准备全流程解密
  • hintcon2025No Man‘s Echo
  • 国产芯力量!贴片式SD卡搭载北京君正Rk瑞芯微,打造嵌入式存储低延迟+高可靠黄金组合​
  • 《从应用到内核:三种流量转发方案深度对比》
  • 手机上访问你电脑上的前端项目
  • 机器学习和高性能计算中常用的几种浮点数精度
  • ​突破RAG知识库中的PDF解析瓶颈:从文本错乱到多模态处理的架构跃迁​
  • 面试tips--JVM(2)--对象创建的过程
  • SLF4J和LogBack
  • 工业级TF卡NAND + 北京君正 + Rk瑞芯微的应用
  • @Jenkins 介绍、部署与使用标准作业程序
  • Gin Validator 错误信息翻译与自定义校验规则详解
  • VS2022+QT6.7+Multimedia(捕获Windows音频数据,生成实时频谱)
  • 浅谈JMeter Listener
  • 安宝特方案丨AR异地专家远程支持平台,适合:机电运维、应急处置、监造验收
  • esp32c2 at 请问通过HTTPS进行OTA升级的AT命令流程有吗?
  • ERNIE 学习
  • Linux中Java后端调用外部进程 未处理后台输出流 导致io阻塞问题解决方法
  • Mac训练大模型:MLX-LM框架LoRA训练Qwen3并集成SwanLab进行可视化
  • VMware + Ubuntu 桥接模式不能联网 的常见原因、排查思路和解决步骤
  • leetcode 3446. 按对角线进行矩阵排序 中等
  • 与trae携手,构建owtb一体化物流平台之--需求文档V0.3