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个):
Python 图像处理 PIL 第三方库详细使用教程(更新中)
通过 Image 打开图像文件时,图像的栅格数据不会被直接解码或者加载,程序只是读取了图像文件头部的元数据信息,这部分信息标识了图像的格式、颜色、大小等。因此,打开一个文件会十分迅速,与图像的存储和压缩方式无关。

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

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

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

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

Python 图像处理 PIL 第三方库详细使用教程(更新中)
查看已经读取的图像文件的属性如下:

>>>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个) 如表所示。

Python 图像处理 PIL 第三方库详细使用教程(更新中)

其中,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个):

Python 图像处理 PIL 第三方库详细使用教程(更新中)

Image 像素通道处理

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

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

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

Python 图像处理 PIL 第三方库详细使用教程(更新中)

图像的颜色交换,交换图像中的颜色,通过分离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 图像融合案例

首先选取背景图:
Python 图像处理 PIL 第三方库详细使用教程(更新中)
选取需要被融合的图片:
Python 图像处理 PIL 第三方库详细使用教程(更新中)
融合代码展示如下:

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")

效果预览图展示:

Python 图像处理 PIL 第三方库详细使用教程(更新中)文章来源地址https://www.toymoban.com/news/detail-470966.html

到了这里,关于Python 图像处理 PIL 第三方库详细使用教程(更新中)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理库(Opencv, Matplotlib, PIL)以及三者之间的转换

    opencv的基本图像类型可以和numpy数组相互转化,因此可以直接调用 torch.from_numpy(img) 将图像转换成 tensor 读取: img=cv2.imread(path) OpenCV读取图像后返回的是一个代表图像的 numpy.ndarray ,采用的格式是 (H,W,C) ,通道顺序为 BGR , 取值范围 [0,255] , dtype=uint8 。 显示: cv2.imshow(name,img) 保存

    2024年02月14日
    浏览(47)
  • (数字图像处理MATLAB+Python)第三章图像基本运算-第二节:图像代数运算

    A:概述 加法运算 :指将两幅同大小的图像进行像素级别的加法操作,得到一幅新的图像。设两幅图像对应的像素值分别为 f 1 ( x , y ) f_{1}(x,y) f 1 ​ ( x , y ) 和 f 2 ( x , y ) f_{2}(x,y) f 2 ​ ( x , y ) ,则它们的加法运算可表示为 g ( x , y ) = f 1 ( x , y ) + f 2 ( x , y ) g(x,y)=f_{1}(x,y) + f_{

    2023年04月12日
    浏览(68)
  • (数字图像处理MATLAB+Python)第九章图像形态学运算-第三节:二值图像的形态学处理

    形态滤波 :是一种在数字图像处理中常用的图像处理技术,用于改善图像的质量、提取图像的特定特征或去除图像中的噪声。形态滤波主要基于形态学运算,通过结构元素(也称为模板)对图像进行局部区域的操作,从而改变图像的形状和结构。选择不同形状(如各向同性的

    2024年02月08日
    浏览(67)
  • (数字图像处理MATLAB+Python)第八章图像复原-第三、四节:图像复原代数方法和典型图像复原方法

    图像复原代数方法 :根据退化模型,假设具备关于 g g g 、 H H H 、 n n n 的某些先验知识,确定某种最佳准则,寻找原图像 f f f 的最优估计 无约束最小乘方复原 :是一种用于恢复受损图像的方法。它基于最小化平方误差的原则,以尽可能接近原始图像为目标。假设我们有一个

    2024年02月05日
    浏览(103)
  • (数字图像处理MATLAB+Python)第七章图像锐化-第三节:高斯滤波与边缘检测

    高斯函数 :是一种常见的连续函数,通常用符号 G ( x ) G(x) G ( x ) 表示。它可以用下面的公式定义 G ( x ) = 1 σ 2 π e − x 2 2 σ 2 G(x)=frac{1}{sigma sqrt{ 2pi }}e^{-frac{x^{2}}{2sigma^{2}}} G ( x ) = σ 2 π ​ 1 ​ e − 2 σ 2 x 2 ​ 其中, x x x 是自变量, σ sigma σ 是一个正实数,表示高斯函

    2024年02月06日
    浏览(57)
  • (数字图像处理MATLAB+Python)第十二章图像编码-第三、四节:有损编码和JPEG

    A:概述 预测编码 :是一种数据压缩技术,旨在通过利用数据中的 统计规律来减少存储或传输所需的比特数 。它基于预测模型,根据已经观察到的数据来预测未来的数据,并将预测误差编码和传输。预测编码的过程通常包括以下几个步骤 模型训练 :首先,根据已有的数据,

    2024年02月09日
    浏览(63)
  • Python第三方库安装教程、什么是第三方库

    Python有一个全球社区:https://pypi.org/,在这里我们可以搜索任何主题的Python第三方库。PyPI全称是Python Package Index,指的是Python包的索引,它由PSF(Python Software Foundation)来维护,并且展示全球Python计算生态。 我们需要学会利用PyPI的主站检索,找到我们使用和关心的Python第三方

    2024年02月03日
    浏览(108)
  • Python第三方库安装——使用vscode、pycharm安装Python第三方库

    在这里介绍vscode、Pycharm安装python第三方库的方法。 操作系统:windows10 专业版 环境如下: Pycharm Comunity 2022.3 Visual Studio Code 2019 Python 3.8 pip:23.0.1 pycharm是一款很强大的、专用于写python的ide。 小白式安装第三方库往往能给初学者一种 “高级感” ,而对于使用惯了Linux的人而言

    2024年02月03日
    浏览(78)
  • 前端遇到302处理方式以及设置第三方Cookie研究

    背景:由于认证中心网关检测到用户是未登录态情况下的话,会将用户重定向到认证中心的登录页。 ​ 此时,假如是使用Oauth2协议,登录成功后,前端需要带着登录成功的信息(jwt),访问/Oauth2/1/authorize接口,此时该接口将会重定向回redirect_uri的地址,这个时候的 重点在于

    2024年02月11日
    浏览(37)
  • cool 中的node.js 实现一个处理第三方Api 数据的处理

    1.需求     你现在是一个后端 前端跟你要一个接口 ,但是你发现 你这个接口 除了调用第三方Api的接口 有的数据还是没有 你直接返回 前端使用不了 因为都没有关于那样的数据 但是三方Api 中有其他的接口和现在的接口 经过处理 是可以实现这个前端需要的数据。遇到这样的

    2024年01月19日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包