使用 Python 图像库处理图像

使用 Python 图像库处理图像,Python内存优化面试题 这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。最近我才对这些路线做了一下新的更新,知识体系更全面了。 阅读详情

在我之前关于Pythonists 节省时间技巧的文章中,我提到 Python 是一种可以激发用户热爱的语言。

造成这种情况的一个原因是可用于该语言的节省时间的库的数量。一个很好的例子是Python Imaging Library (PIL),它是本文的重点。

你可以用 PIL 做什么

PIL 是一个免费库,可为您的 Python 解释器添加图像处理功能,支持 PPM、PNG、JPEG、GIF、TIFF 和 BMP 等一系列图像文件格式。

PIL 提供了几种图像处理/操作的标准程序,例如:

  • 基于像素的操作
  • 遮蔽和透明度处理
  • 过滤(例如,模糊、轮廓、平滑、边缘检测)
  • 图像增强(例如,锐化、亮度调整、对比度)
  • 几何、颜色和其他变换
  • 向图像添加文本
  • 剪切、粘贴和合并图像
  • 创建缩略图。

PIL和枕头

PIL 的一个问题是其最新版本 1.1.7 于 2009 年发布,仅支持 Python 1.5.2–2.7。尽管 PIL 网站承诺即将推出 Python 3.X 版本,但其最后一次提交是在 2011 年,并且似乎已经停止了开发。

幸运的是,对于 Python 3.X 用户来说,一切都没有丢失。一个名为Pillow的项目已经分叉了 PIL 存储库并添加了 Python 3.X 支持。鉴于大多数读者可能会使用 Python 3.X,我将在本文中关注 Pillow 更新。

安装枕头

由于 Pillow 支持的 Python 版本回到 Python 2.4,我将只关注安装 Pillow 而不是旧版本的 PIL。

Mac 上的 Python

我目前正在 Mac OS X Yosemite 10.10.5 上编写本教程,因此将描述如何在 Mac OS X 机器上安装 Pillow。但是,别担心,我将在本节末尾提供一个链接,描述如何在其他操作系统上安装 Pillow。

我只想在这里指出,Mac OS X 预装了 Python。但是,该版本很可能会在 3.X 之前。

例如,在我的机器上,当我$ python --version在终端中运行时,我得到Python 2.7.10.

Python 和点子

安装 Pillow 的一种非常简单的方法是通过pip。

如果您的机器上没有安装 pip,只需在终端中输入以下命令,即可完成:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">$ sudo easy_install pip</code></span></span>

现在,要安装 Pillow,只需在终端中输入以下内容:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">$ sudo pip install pillow</code></span></span>

那很容易,不是吗?

正如我所承诺的,要在其他操作系统上安装 Pillow,您可以在此处找到相关说明。

一些例子

在本节中,我将演示一些我们可以用 PIL 做的简单事情。

我将在以下图像上执行这些测试:

砖房

如果您想跟随这些示例,请下载图像。

读取图像

这是图像处理任务中最基本的操作,因为要处理图像,您必须先读取它。使用 PIL,这可以很容易地完成,如下所示:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">from PIL import Image
img <span style="color:#89ddff">=</span> Image<span style="color:#c792ea">.</span><span style="color:#82aaff">open</span><span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house.png'</span><span style="color:#c792ea">)</span></code></span></span>

注意这里img是一个 PIL 图像对象,由open()函数创建,它是 PILImage模块的一部分。

您还可以读取已打开的文件、字符串或 tar 存档。

将图像转换为灰度,显示并保存

该文件brick-house.png是彩色图像。要将其转换为grayscale,显示它,然后保存新的灰度图像,您只需执行以下操作:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">from PIL import Image
img <span style="color:#89ddff">=</span> Image<span style="color:#c792ea">.</span><span style="color:#82aaff">open</span><span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house.png'</span><span style="color:#c792ea">)</span><span style="color:#c792ea">.</span>convert<span style="color:#c792ea">(</span><span style="color:#c3e88d">'L'</span><span style="color:#c792ea">)</span>
img<span style="color:#c792ea">.</span>show<span style="color:#c792ea">(</span><span style="color:#c792ea">)</span>
img<span style="color:#c792ea">.</span>save<span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house-gs'</span><span style="color:#c792ea">,</span><span style="color:#c3e88d">'png'</span><span style="color:#c792ea">)</span></code></span></span>

请注意,我们使用了三个主要函数来执行此操作:convert()、show()和save()。由于我们要转换为灰度图像,因此该L参数与convert().

这是返回的图像:

砖房灰度版

转换为另一种图像类型

我们正在处理的图像类型为png. 假设您要将其转换为另一种图像类型,例如jpg. 此操作可以使用save()我们在上面小节中用于保存结果(将输出写入磁盘)的函数来完成:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">from PIL import Image
img <span style="color:#89ddff">=</span> Image<span style="color:#c792ea">.</span><span style="color:#82aaff">open</span><span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house.png'</span><span style="color:#c792ea">)</span>
img<span style="color:#c792ea">.</span>save<span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-image'</span><span style="color:#c792ea">,</span><span style="color:#c3e88d">'jpeg'</span><span style="color:#c792ea">)</span></code></span></span>

调整图像大小

我们原始图像的大小(尺寸)为 440 x 600 像素。如果我们想调整它的大小,使其大小为 256 x 256px,可以按如下方式完成:

<span style="background-color:#292d3e"><span style="color:#bfc7d5"><code class="language-python">from PIL import Image
img <span style="color:#89ddff">=</span> Image<span style="color:#c792ea">.</span><span style="color:#82aaff">open</span><span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house.png'</span><span style="color:#c792ea">)</span>
new_img <span style="color:#89ddff">=</span> img<span style="color:#c792ea">.</span>resize<span style="color:#c792ea">(</span><span style="color:#c792ea">(</span><span style="color:#f78c6c">256</span><span style="color:#c792ea">,</span><span style="color:#f78c6c">256</span><span style="color:#c792ea">)</span><span style="color:#c792ea">)</span>
new_img<span style="color:#c792ea">.</span>save<span style="color:#c792ea">(</span><span style="color:#c3e88d">'brick-house-256x256'</span><span style="color:#c792ea">,</span><span style="color:#c3e88d">'png'</span><span style="color:#c792ea">)</span></code></span></span>

这会产生一个新的方形图像:

砖房调整大小

如您所见,这会将图像压缩到所需的尺寸而不是裁剪它,这可能不是您想要的。当然,您也可以在保留适当纵横比的同时裁剪图像。

综上所述

这个快速介绍只是为了了解 PIL 的表面,并演示如何通过 PIL 库在 Python 中轻松完成一些复杂的图像处理任务。

您可以使用此库执行的许多其他操作在综合Pillow 文档中进行了描述,您可以在其中阅读有关上述问题的更多详细信息以及方便的教程。

如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!微信公众号【Python大本营】等你来玩奥~

我希望这篇介绍能激发您尝试使用 Python 进行图像处理。玩得开心!

Python 图像库 PIL 学习 Python映像库中最重要的类是Image类,定义在具有相同名称的模块中。您可以通过多种方式创建该类的实例;通过从文件加载图像,处理其他图像,或从头创建图像 文章目录一、简单实用的 Image函数1. 查看图片的信息2. 图片的打开和显示3. 图片的保存4. 彩色图像转灰度图5. 转换图像6. 创建一个新的图片二、PIL Image 图像互转 numpy 数组1. 将 PIL Image 图片转换... 阅读详情

相关推荐

DAC8568实战指南:如何用STM32实现8通道DAC精准控制(附代码)

本文提供DAC8568与STM32结合的实战指南,详细解析8通道16位DAC的精准控制方法。内容涵盖硬件连接、SPI配置、驱动层构建、时序调试及多通道同步输出等关键步骤,并附有经过验证的HAL库驱动代码,帮助工程师快速解决实际项目中的通信与输出稳定性问题。

weixin_29175469的博客 746

Python 操作 image

python 处理 图片

口袋里的小龙的专栏 3560

保姆级教程:用BMS的HVIL检测电路,手把手教你排查高压互锁故障(附PWM/直流源方案对比)

本文详细解析了BMS中的HVIL检测电路,通过对比直流源与PWM两种方案,提供了一套系统化的高压互锁故障诊断流程。从电路原理到实战技巧,帮助维修人员精准定位故障根源,提升电动汽车高压系统的安全性和可靠性。

weixin_29300241的博客 392

Python image库

nRGBA:4x8位像素,有透明通道的真彩色。加载和保存图像文件时,多少信息需要处理取决于文件格式\n二、 基本方法和属性使用\n##打开图像,返回PIL.Image对象\nfrom PIL import Image as Image\nimage = Image.open(‘image.gpeg’)\n##显示图像模式,模式概念见第一节基本概念\nimage.mode\n##转换模式\nimage.convert(‘1’)\n\n##将一个图像对象转为缩略图,图像对象将之间变为缩略图,本地图像不变。

m0_73336523的博客 936

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析

本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。

weixin_26965807的博客 237

Windows下MMdetection3D保姆级安装指南(含CUDA和PyTorch版本避坑)

本文提供Windows平台下MMdetection3D的完整安装指南,重点解决CUDA与PyTorch版本匹配问题。从环境准备到关键组件安装,详细介绍了CUDA Toolkit选择策略、PyTorch精准安装步骤,以及MM系列组件的安装顺序和常见错误解决方案,帮助用户顺利完成3D目标检测环境的配置。

weixin_42628941的博客 493

Python 图形处理库 PIL (Python Image Library) 使用笔记

PythonWare 公司提供了免费的图像处理工具包 PIL (Python Image Library), 该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。 虽然在这个软件包上要实现类似 MATLAB 中的复杂的图像处理算法并不太适合,但是 Python 的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。

人无远虑,必有近忧 2776

Matlab波动光光学系统

波动光学是一种研究光波传播过程的理论,按照其处理的信息类型不同,可以分为相干和非相干波动光学,相干波动光学可以用作特定光学系统的分析和设计,其主要依赖物理光学和电磁波的基本原理,以及光学干涉和衍射的经验方程式,其中光波传播过程是以复数形式表示的,包括振幅和相位两个方面。近年来光学技术得到了广泛的应用和发展,波动光光学系统是其中一种重要的光学系统,它主要是利用波动光学原理,通过计算机模拟实现各种光学系统的设计、分析和优化,可应用于大气光传输、光束整形、分析系统的衍射和干涉特性,包括利用。

weixin_50547796的博客 262

【python】image库使用以及验证码识别

文章目录基础使用 基础使用 #coding:utf-8 #典型应用: >>> from PIL import Image >>> im = Image.open('/Users/Ezy/Documents/Test/image/test.jpg') >>> print im.format, im.size, im.mode JPEG (440, 330) RGB #size元组表示宽和高,mode表示RGB(true color image),此外还有

qq_44657899的博客 1933

从代码仓库到知识库:自动化构建与RAG技术实践

在软件工程领域,代码库的规模与复杂性日益增长,如何高效管理和利用其中的知识成为关键挑战。传统文档工具主要依赖注释提取API信息,而现代知识构建技术则通过抽象语法树(AST)解析、自然语言处理等手段,深入理解代码结构、调用关系和业务逻辑。其核心价值在于将非结构化代码转化为机器可理解、可检索的结构化知识,显著提升代码资产的可维护性和团队协作效率。这一过程通常涉及代码解析、信息提取、向量化表示和存储索引四个关键阶段,其中向量化技术将代码语义转化为高维向量,为语义搜索奠定基础。结合检索增强生成(RAG)架构,开发者

weixin_42545292的博客 417

CelebA-HQ数据集下载【详细明了版】分辨率包括【64,128,256,512,1024】

CelebA-HQ 是在ICLR2018上,nVidia发表了一篇名为Progressive Growing of GANs for Improved Quality, Stability, and Variation的论文,文中通过训练高分辨率GAN生成了一个新的人脸数据集CelebA-HQ.CelebA是港科大汤晓鸥组收集的人脸数据集(总共200k图片),包括了人脸特征点(landmark),人脸属性(attribute)等信息,详细介绍参考链接[1]和[2]

zik的博客 1万+

Python Image库 - 基本操作

from PIL import Image img = Image.open("") # 打开图像 img = Image.new(mode: "RGB", (width, height)) # 新建图片对象 img.getpixel((0, 0)) # 获取坐标值rgb值 img.putpixel((0, 0), (r, g, b)) # 设置坐标像素值 img.convert('1') # 二值化 img.convert('L') # 灰度图像 img.convert('P') #...

qq_40734108的博客 3341

把 SAP OData 查询模式讲透:从 $select 到 $expand 的设计、实现与性能边界

摘要:本文深入探讨SAP生态中OData查询模式的核心设计与实现要点。文章指出,OData不仅是接口协议,更是HTTP、REST与数据模型的统一语言,其性能关键取决于查询选项($select、$filter等)的设计与实现质量。重点分析了$select的投影优化、$orderby的排序语义、$filter的数据库下推策略,以及$count的高效计数方法。通过具体示例和最佳实践,强调应将查询逻辑尽量下推至数据库层,避免在ABAP应用层处理大数据集,从而提升服务性能、降低资源消耗,实现Clean Core架构理

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 655

最全使用 Python 图像库处理图像,2024年最新程序员 面试宝典

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2401_84537603的博客 866

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

2024年最新互联网公司面试技巧和注意事项,使用 Python 图像库处理图像(2),2024年最新阿里二面面试官级别

尽管 PIL 网站承诺即将推出 Python 3.X 版本,但其最后一次提交是在 2011 年,并且似乎已经停止了开发。但是,别担心,我将在本节末尾提供一个链接,描述如何在其他操作系统上安装 Pillow。由于 Pillow 支持的 Python 版本回到 Python 2.4,我将只关注安装 Pillow 而不是旧版本的 PIL。但是,该版本很可能会在 3.X 之前。幸运的是,对于 Python 3.X 用户来说,一切都没有丢失。正如我所承诺的,要在其他操作系统上安装 Pillow,您可以在。

fghis的博客 1095

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python各类图像库的图片读写方式总结

最近在研究深度学习视觉相关的东西,经常需要写python代码搭建深度学习模型。比如写CNN模型相关代码时,我们需要借助python图像库来读取图像并进行一系列的图像处理工作。我最常用的图像库当然是opencv,很强大很好用,但是opencv也有一些坑,不注意的话也会搞出大麻烦。近期我也在看一些别人写的代码,因为个人习惯不一样,他们在做深度学习时用于图片读取的图像库各不相同,从opencv到PIL再...

monk1992的博客 256

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

图像库 PIL(一)

本节为大家介绍了 Python pillow 库中图像有关的几个基本概念,以及 PIL 模块中处理图像的几个常见功能。掌握了这些功能后,我们可以打开、创建图像,也可以对图像做一些常见的如拆分、合成、融合等操作,这些都是图像处理的基础,需要大家好好理解和掌握。

qq_36594703的博客 1117

计算机视觉--python图像处理基础

计算机视觉--python图像处理基础前言一、图像轮廓和直方图1.1 原理介绍1.2 代码实现及结果 前言         图像处理的研究领域,大家都知道Matlab,本章介绍python语言的基础图像处理。Python 里面最常用的图像操作库是Image library(PIL),在实验开始前,首先进行软件安装与环境...

qq_41784565的博客 1955

Python中各类图像库实现图像的读写操作

最近在研究深度学习视觉相关的东西,经常需要写python代码搭建深度学习模型。比如写CNN模型相关代码时,我们需要借助python图像库来读取图像并进行一系列的图像处理工作。我最常用的图像库当然是opencv,很强大很好用,但是opencv也有一些坑,不注意的话也会搞出大麻烦。近期我也在看一些别人写的代码,因为个人习惯不一样,他们在做深度学习时用于图片读取的图像库各不相同,从opencv到PIL再...

Nieson2012的专栏 829

深度学习中各种图像库的图片读取方式

这里写自定义目录标题欢迎使用Markdown编辑器功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdow

沐凡星的博客 2758

非官方win7 64位 python 图像库

http://www.lfd.uci.edu/~gohlke/pythonlibs/非官方win7 64位 python 图像库地址 ,找到pillow,上面有说明是PIL的替代库

ahuan08的专栏 324

1 图片channels_深度学习中各种图像库的图片读取方式

深度学习中各种图像库的图片读取方式总结在数据预处理过程中,经常需要写python代码搭建深度学习模型,不同的深度学习框架会有不同的读取数据方式(eg:Caffe的python接口默认BGR格式,Tensorflow默认RGB格式),经常需要借助python图像库来读取图像并进行一系列的图像处理工作。这篇文章总结了Python图像库处理数据的基本方式:1.Opencv2.PIL(pillow)3.m...

weixin_35045973的博客 971

利用Python PIL cPickle读取和保存图像数据库

利用Python PIL cPickle读取和保存图像数据库

qq_43667111的博客 429
上一篇: Python 集合之旅
下一篇: 快速提示:了解 Python 中的 Yield 关键字
程序员孔乙己
博客等级 码龄5年 1190粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值