iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 图像处理之PIL库详解用法
  • 694
分享到

Python 图像处理之PIL库详解用法

2024-04-02 19:04:59 694人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言🍒PIL库概述🍓Image类解析💚图像的创建💙图像的属性💜图像的转换💗图像处理

前言

提示:以下是本篇文章正文内容

🍒PIL库概述

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

PIL库可以完成图像归档和图像处理两方面功能需求:
(1)图像归档:对图像进行批处理、 生成图像预览、 图像格式转换等

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

🍓Image类解析

💚图像的创建

在PIL中, 任何一个图像文件都可以用Image对象表示Image类的图像读取和创建方法

方法 描述
Image.open(filename) 根据参数加载图像文件
Image.new(mode, size, color) 根据给定参数创建一个新的图像
Image.open(Stringio.StringIO(buffer)) 字符串中获取图像
Image.frombytes(mode, size, data) 根据像素点data创建图像
Image.verify() 对图像文件完整性进行检查, 返回异常

from PIL import Image
im = Image.open(r"E:\PyCharm\Project\pictures\2049675.jpg")
im.show() // 显示

基本上如下图

在这里插入图片描述

💙图像的属性

属性 描述
Image.fORMat 标识图像格式或来源, 如果图像不是从文件读取, 值是None
Image.mode 图像的色彩模式, "L"灰度图像、 "RGB"真彩色图像、 "CMYK"出版图像
Image.format 标识图像格式或来源, 如果图像不是从文件读取, 值是None
Image.size 图像宽度和高度, 单位是像素(px) , 返回值是二元元组(tuple)
Image.palette 调色板属性, 返回一个ImagePalette类型

from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg")
im.show()
print(im.format,im.size)

# 结果
# JPEG (1920, 1080)

💜图像的转换

方法 描述
Image.save(filename, format) 将图像保存为filename文件名, format是图片格式
Image.convert(mode) 使用不同的参数, 转换图像为新的模式
Image.thumbnail(size) 创建图像的缩略图, size是缩略图尺寸的二元元组

jpg 转换成png


from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg")
print(im)
im.save(r"E:\Pycharm\Project\pictures\2049675changed.png")
im = Image.open(r"E:\Pycharm\Project\pictures\2049675changed.png")
print(im)
im.show()

# 结果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x1A8DE865F40>
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1920x1080 at 0x1A8DE8D2E80>

GIF文件图像提取。
对一个GIF格式动态文件, 提取其中各帧图像, 并保存为文件


from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\21.gif") # 读入一个GIF文件
try:
    im.save('picframe{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)  # 帧的位置
        im.save('picframe{:02d}.png'.format(im.tell()))
except:
    print("处理结束")

结果

在这里插入图片描述

tell()方法:返回当前帧所处位置,从0开始计算

缩略图


from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2050074.jpg")
print(im)
im.thumbnail((128, 99))
im.save("mm","JPEG")
print(im)
im.show()

# 结果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2757x2135 at 0x238DFCD5DC0>
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=128x99 at 0x238DFCD5DC0>

在这里插入图片描述

💗图像处理

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

方法 描述
Image.resize(size) 按size大小调整图像, 生成副本
Image.rotate(angle) 按angle角度旋转图像, 生成副本

2.Image类能够对每个像素点或者一幅RGB图像的每个通道单独进行操作,split()
方法能够将RGB图像各颜色通道提取出来, merge()方法能够将各独立通道再合成一幅新的图像。

方法 描述
Image.point(func) 根据函数func功能对每个元素进行运算, 返回图像副本
Image.split() 提取RGB图像的每个颜色通道, 返回图像副本
Image.merge(mode, bands) 合并通道 , 采用mode色彩, bands是新色的色彩通道
Image.blend(im1,im2,alpha) 将两幅图片im1和im2按照如下公式插值后生成新的图像:im1 * (1.0-alpha) + im2 * alpha

图像的颜色交换
交换图像中的颜色, 可以通过分离RGB图片的三个颜色通道实现颜色交换


from PIL import Image
im = Image.open(r"E:\Pycharm\Project\pictures\2050536.jpg") #打开文件
r, g, b = im.split() #获得RGB通道数据
newg = g.point(lambda i: i * 0.9) # 将G通道颜色值变为原来的0.9倍
newb = b.point(lambda i: i < 100) # 选择B通道值低于100的像素点
om = Image.merge(im.mode, (r, newg, newb)) # 将3个通道合形成新图像
om.save(r"E:\Pycharm\Project\pictures\aa.jpg") #输出图片
om.show()

原图:

在这里插入图片描述

交换后

在这里插入图片描述

3.图像的过滤和增强
PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法, 共10种

方法表示 描述
ImageFilter.BLUR 图像的模糊效果
ImageFilter.CONTOUR 图像的轮廓效果
ImageFilter.DETAIL 图像的细节效果
ImageFilter.EDGE_ENHANCE 图像的边界加强效果
ImageFilter.EDGE_ENHANCE_MORE 图像的阈值边界加强效果
ImageFilter.EMBOSS 图像的浮雕效果
ImageFilter.FIND_EDGES 图像的边界效果
ImageFilter.SMOOTH 图像的平滑效果
ImageFilter.SMOOTH_MORE 图像的阈值平滑效果
ImageFilter.SHARPEN 图像的锐化效果

轮廓效果


from PIL import Image
from PIL import ImageFilter
im = Image.open(r"E:\Pycharm\Project\pictures\2050558.jpg")
om = im.filter(ImageFilter.CONTOUR)
om.save('abc.jpg')
om.show()

原图:

在这里插入图片描述

修改后:

在这里插入图片描述

4.ImageEnhance类提供了更高级的图像增强需求, 它提供调整色彩度、 亮度、 对比度、 锐化等功能

方法 描述
ImageEnhance.enhance(factor) 对选择属性的数值增强factor倍
ImageEnhance.Color(im) 调整图像的颜色平衡
ImageEnhance.Contrast(im) 调整图像的对比度
ImageEnhance.Brightness(im) 调整图像的亮度
ImageEnhance.Sharpness(im) 调整图像的锐度

总结

提示:这里对文章进行总结:

到此这篇关于python 图像处理之PIL库详解用法的文章就介绍到这了,更多相关Python 图像处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 图像处理之PIL库详解用法

本文链接: https://www.lsjlt.com/news/156201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 图像处理之PIL库详解用法
    目录前言🍒PIL库概述🍓Image类解析💚图像的创建💙图像的属性💜图像的转换💗图像处理...
    99+
    2024-04-02
  • Python图像处理之PIL库怎么使用
    本篇内容主要讲解“Python图像处理之PIL库怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python图像处理之PIL库怎么使用”吧!PIL库的使用要点:PIL库是一个具有强大图像处...
    99+
    2023-07-02
  • Python图像处理库PIL详细使用说明
    一、 简介 1、 基本介绍 Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。与 Pillow 相比,Ope...
    99+
    2024-04-02
  • Python图像处理库PIL怎么使用
    一、 简介1、 基本介绍Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。与 Pillow 相比,OpenCV 和 Scikit-image 的功能更为丰富,所以使用...
    99+
    2023-05-14
    Python pil
  • Python图像处理库PIL如何使用
    这篇文章主要介绍“Python图像处理库PIL如何使用”,在日常操作中,相信很多人在Python图像处理库PIL如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python图像处理库PIL如何使用”的疑...
    99+
    2023-07-06
  • Python图像处理之图像增广算法详解
    目录前言图像增广算法a.图像旋转b.图像亮度调整c.图像裁剪及拼接本章小结前言 图像增广算法在计算机视觉领域扮演着至关重要的角色。随着深度学习的兴起,大规模数据集的需求变得更加迫切,...
    99+
    2023-05-20
    Python图像增广算法 Python图像处理 Python 算法
  • Python图像处理之图像量化处理详解
    目录一.图像量化处理原理二.图像量化实现三.图像量化等级对比四.K-Means聚类实现量化处理五.总结一.图像量化处理原理 量化(Quantization)旨在将图像像素点对应亮度的...
    99+
    2024-04-02
  • Python图像处理之图像金字塔详解
    目录一.图像金字塔原理二.图像向上取样三.图像向下取样四.总结一.图像金字塔原理 上一篇文章讲解的图像采样处理可以降低图像的大小,本文将补充图像金字塔知识,了解专门用于图像向上采样和...
    99+
    2024-04-02
  • educoder之Python数值计算库Numpy图像处理详解
    目录NumPy   Python数值计算重要库读取和显示图像图像的大小调整图像的翻转图像缩放和裁剪颜色通道处理图像滤波NumPy   Pyth...
    99+
    2023-05-17
    Python 数值计算库Numpy Python Numpy图像处理
  • Python图像运算之图像阈值化处理详解
    目录一.图像阈值化二.固定阈值化处理1.二进制阈值化2.反二进制阈值化3.截断阈值化4.阈值化为05.反阈值化为0三.自适应阈值化处理四.总结一.图像阈值化 图像阈值化(Binari...
    99+
    2024-04-02
  • Python图像处理【3】Python图像处理库应用
    Python图像处理库应用 0. 前言1. 将 RGB 图像转换为灰度图像算法1.1 算法原理3.2 算法实现 2. 使用 PIL 库计算图像差异2.1 算法原理2.2 算法实现 ...
    99+
    2023-09-06
    python 图像处理 计算机视觉
  • OpenCV图像处理之图像拼接详解
    目录图像拼接技术一、需求分析二、具体步骤三、代码实现图像拼接技术 一、需求分析 将下面两张图像进行拼接 拼接得到一张完整的图像 二、具体步骤 1.选择特征点 //1、选...
    99+
    2022-11-13
    OpenCV 图像处理 图像拼接 OpenCV 图像拼接 OpenCV 图像处理
  • python之pil的使用详解
    一:PIL功能介绍与安装 PIL,全称Python Image Library,主要作用是图像处理,可用于图片剪切、粘贴、缩放、镜像、水印、颜色块、滤镜、图像格式转换、色场空间转换、...
    99+
    2024-04-02
  • Python怎么用PIL图像处理库绘制国际象棋棋盘
    本篇内容介绍了“Python怎么用PIL图像处理库绘制国际象棋棋盘”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录1 PIL绘制国际象棋棋...
    99+
    2023-06-20
  • 玩转Python图像处理之二值图像腐蚀详解
    目录1 引言2 腐蚀概念3 举个栗子4 水平腐蚀4.1 理论基础4.2 代码实现5 垂直腐蚀5.1 理论基础5.2 代码实现6 全方向腐蚀6.1 理论基础6.2 代码实现7 总结1 ...
    99+
    2024-04-02
  • Python 图像处理 Pillow 库详情
    前言: 图像处理是常用的技术,python 拥有丰富的第三方扩展库,Pillow 是 Python3 最常用的图像处理库,目前最高版本5.2.0。Python2 使用Pil库,两者是...
    99+
    2024-04-02
  • Python图像处理库crop()函数 thumbnail方法使用详解
    目录PIL和Pillowcrop()函数thumbnail方法PIL和Pillow PIL(Python Image Library)是一个非常流行的Python图像处理库,但自从2...
    99+
    2023-05-17
    Python图像处理库crop thumbnail Python crop函数thumbnail方法
  • Python图像处理之图像算术与逻辑运算详解
    目录一.图像加法运算二.图像减法运算三.图像与运算四.图像或运算五.图像非运算六.图像异或运算七.总结一.图像加法运算 图像加法运算主要有两种方法。第一种是调用Numpy库实现,目标...
    99+
    2024-04-02
  • Python图像处理之边缘检测原理详解
    目录原理Sobel检测算子Laplacian算子算子比较原理 边缘检测是图像处理和计算机视觉当中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点,图像的边缘检测可以大幅度的...
    99+
    2022-12-08
    Python图像处理 边缘检测 Python边缘检测 Python图像处理
  • Python图像处理之图像拼接
    目录一、前言二、特征点匹配三、匹配错误的特征点干扰四、消除干扰五、RANSAC进行图像匹配六、总结一、前言 图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作