IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Python 图像处理 PIL 第三方库详细使用教程(更新中) -> 正文阅读

[人工智能]Python 图像处理 PIL 第三方库详细使用教程(更新中)

Pillow 库 基本概述

Python Pillow PIL 库的用法介绍,Pillow库是一个Python的第三方库。

要点:PIL库是一个具有强大图像处理能力的第三方库,不仅包含了丰富的像素、色彩操作功能,还可以用于图像归档和批量处理。

官方文档路径:https://pillow.readthedocs.io/en/latest/

在 Python2 中,PIL (Python Imaging Library) 是一个非常好用的图像处理库,但 PIL 不支持 Python3,所以 Alex Clark 和 Contributors 提供了 Pillow,使其可以在 Python3 中使用。

PIL(Python Image Library)库是 Python 语言的第三方库,需要通过pip工具安装。安装PIL库的方法如下,需要注意,安装库的名字是 pillow。

pip 安装 Pillow 库

PIL库支持图像存储、显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。

PIL库主要可以实现图像归档和图像处理两方面动能需求:

(1)图像归档:对图像进行批处理、生成图像预览、图像格式转换等。

(2)图像处理:图像基本处理、像素处理、颜色处理等。

pip install pillow

PIL库 Image 类解析

Image是PIL最重要的类,它代表一张图片,引入这个类的方法如下:

from PIL import Image

在 PIL 中,任何一个图像文件都可以用 Image 对象表示。Image类的图像读取和创建方法如下(共5个):
在这里插入图片描述
通过 Image 打开图像文件时,图像的栅格数据不会被直接解码或者加载,程序只是读取了图像文件头部的元数据信息,这部分信息标识了图像的格式、颜色、大小等。因此,打开一个文件会十分迅速,与图像的存储和压缩方式无关。

要加载一个图像文件,最简单的形式如下,之后所有操作对 im 起作用。

from PIL import Image
im = Image.open ("a.jpg")

在使用IDLE交互方式处理图片文件时,建议采用文件的全路径;如果使用Python文件形式,建议采用相对路径,将文件和程序放到一个目录中。

Image 类有 4 个处理图片的常用属性,如表所示 (共4个)

在这里插入图片描述
查看已经读取的图像文件的属性如下:

>>>print (im. format, im.size, im.mode)
JPEG (900, 598) RGB

创建白底的图片:def new(mode, size, color=0)

image = Image.new('RGB', (600, 600), (255, 255, 255))

Image 转换和保存

Image类的图像转换和保存方法 (共3个) 如表所示。

在这里插入图片描述

其中,save()方法有两个参数:文件名 filename 和图像格式 format。如果调用时不指定保存格式,PIL将自动根据文件名filename后缀存储图像;如果指定格式,则按照格式存储。

搭配采用 open() 和 save() 方法可以实现图像的格式转换,例如,将 jpg 格式转换为 png 格式代码如下。需要注意,Image 类的 save() 方法主要用于保存文件到硬盘,PIL 库还提供了功能更强大的格式转换方法。

im = Image.open("a.jpg")
im.save("a.png")

Image 缩放和旋转

Image类可以缩放和旋转图像,其中,rotate(方法以逆时旋转的角度值作为参数来旋转图像。

Image类的图像旋转和缩放方法(共2个):

在这里插入图片描述

Image 像素通道处理

Image类能够对每个像素点或者一幅RGB图像的每个通道单独进行操作。split()方法能够将RGB 图像各颜色通道提取出来;

merge()方法能够将各独立通道再合成一幅新的图像。

lmage类的图像像素和通道处理方法(共4个):

在这里插入图片描述

图像的颜色交换,交换图像中的颜色,通过分离RGB图片的3个颜色通道实现颜色交换。

from PIL import Image
im = Image.open('a.jpg')
r, g, b = im.split()
om = Image.merge("RGB" , (b, g, r))
om.save('aBGR.jpg')

Image 图像融合案例

首先选取背景图:
在这里插入图片描述
选取需要被融合的图片:
在这里插入图片描述
融合代码展示如下:

from PIL import Image

background = Image.open('background.jpg')
problem = Image.open('problem.jpg')

problem = problem.resize((int(problem.size[0] / problem.size[1] * 220), 220))
width, height = problem.size
for i in range(0, width):
    for j in range(0, height):
        if problem.getpixel((i, j)) != (255, 255, 255):
            background.putpixel((i + 40, j + 40), (43, 33, 110))

background.show()
background.save("background_image.jpg")

效果预览图展示:

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:52:59  更:2022-09-30 00:54:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 17:41:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计