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

PIL包在Python图像处理中的应用

诸神缄默不语-个人CSDN博文目录

PIL(Python Imaging Library)是Python中一个强大的图像处理库,尽管其已不再更新,但其后续版本Pillow提供了更多的功能和更好的兼容性。本文将重点介绍Pillow库中的open()函数、fromarray()函数以及save()函数,并通过示例代码展示它们的用法。

文章目录

  • 一、`open()`函数
  • 二、`fromarray()`函数
  • 三、`save()`函数
  • 四、综合示例

一、open()函数

open()函数用于打开一个图像文件,并返回一个Image对象。其基本用法如下:

from PIL import Image# 打开图像文件
img = Image.open('path_to_image.jpg')# 显示图像
img.show()

参数说明:

  • path_to_image:图像文件的路径。

示例:

假设我们有一张名为example.jpg的图片,我们可以这样打开并显示它:

from PIL import Imageimg = Image.open('example.jpg')
img.show()

二、fromarray()函数

fromarray()函数用于将NumPy数组转换为Image对象。这在处理大量图像数据或需要与其他库(如OpenCV)交互时非常有用。其基本用法如下:

import numpy as np
from PIL import Image# 创建一个NumPy数组
array = np.random.rand(100, 100, 3) * 255  # 生成一个100x100的随机RGB图像# 将NumPy数组转换为Image对象
img = Image.fromarray(array.astype('uint8'))# 显示图像
img.show()

参数说明:

  • array:输入的NumPy数组。
  • dtype:可选参数,指定数组的数据类型,默认为'uint8'

示例:

假设我们有一个NumPy数组image_array,我们可以这样将其转换为Image对象并显示:

import numpy as np
from PIL import Imageimage_array = np.random.rand(100, 100, 3) * 255
img = Image.fromarray(image_array.astype('uint8'))
img.show()

三、save()函数

save()函数用于将Image对象保存为指定格式的图像文件。其基本用法如下:

from PIL import Image# 打开图像文件
img = Image.open('example.jpg')# 保存图像为PNG格式
img.save('example.png')

参数说明:

  • filename:保存的文件名,包括路径和扩展名。
  • format:可选参数,指定保存的图像格式,默认为文件扩展名指定的格式。

示例:

假设我们已经有一个Image对象img,我们可以这样将其保存为PNG格式:

img.save('example.png')

四、综合示例

下面是一个综合示例,展示了如何使用open()fromarray()save()函数完成一系列图像处理任务:

import numpy as np
from PIL import Image# 打开图像文件
img = Image.open('example.jpg')# 将Image对象转换为NumPy数组
array = np.array(img)# 对数组进行处理(例如:灰度化)
gray_array = np.dot(array[..., :3], [0.2989, 0.5870, 0.1140])# 将处理后的数组转换回Image对象
gray_img = Image.fromarray(gray_array.astype('uint8'))# 保存处理后的图像
gray_img.save('example_gray.png')

通过以上示例,我们可以看到Pillow库在图像处理中的强大功能。希望本文对你有所帮助!

相关文章:

PIL包在Python图像处理中的应用

诸神缄默不语-个人CSDN博文目录 PIL(Python Imaging Library)是Python中一个强大的图像处理库,尽管其已不再更新,但其后续版本Pillow提供了更多的功能和更好的兼容性。本文将重点介绍Pillow库中的open()函数、fromarray()函数以及…...

ArcGIS Pro ADCore DAML

ArcGIS Pro ADCore DAML ArcGIS Pro SDK - ADCore.daml https://download.csdn.net/download/szy13323042191/89997391...

Clip结合Faiss+Flask简易版文搜图服务

一、实现 使用目录结构&#xff1a; templates ---upload.html faiss_app.py 前端代码&#xff1a;upload.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&quo…...

【机器学习】数学知识:欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)

欧式距离和曼哈顿距离是两种常用的距离度量方法&#xff0c;用于衡量两点之间的相似性或差异性。它们在几何分析、数据挖掘、机器学习等领域有广泛应用。 1. 欧式距离 概念 欧式距离&#xff08;Euclidean Distance&#xff09;是最常见的直线距离度量方法&#xff0c;源于欧…...

Redis 概 述 和 安 装

安 装 r e d i s: 1. 下 载 r e dis h t t p s : / / d o w n l o a d . r e d i s . i o / r e l e a s e s / 2. 将 redis 安装包拷贝到 /opt/ 目录 3. 解压 tar -zvxf redis-6.2.1.tar.gz 4. 安装gcc yum install gcc 5. 进入目录 cd redis-6.2.1 6. 编译 make …...

数据仓库面试题集离线实时

一、Flink面试问题集 1、flinkkafka 如何保证精准一次 配置两阶段提交 2、Flink提交方式&#xff0c; 使用pre-job还是yarn-session模式&#xff0c;以及Application模式&#xff0c;好处&#xff1f; Flink提交模式模式对比 3、Flink UV统计实现 set布隆过滤器redis 有误…...

Spring Boot框架:电商系统的技术革新

4 系统设计 网上商城系统的设计方案比如功能框架的设计&#xff0c;比如数据库的设计的好坏也就决定了该系统在开发层面是否高效&#xff0c;以及在系统维护层面是否容易维护和升级&#xff0c;因为在系统实现阶段是需要考虑用户的所有需求&#xff0c;要是在设计阶段没有经过全…...

一键抠图:免费安全的在线图片去除背景工具

利用前端技术&#xff0c;轻松去除图片背景 得益于Webassembly技术的快速发展&#xff0c;前端可以实现的功能越来越多。本文将介绍一款基于briaai的 RMBG-1.4型号的 预训练模型实现的在线图片去除背景(抠图)工具。地址&#xff1a;https://www.potatotools.top/toolsEntrance…...

vue项目PC端和移动端实现在线预览pptx文件

通过PPTXjs插件,实现PPTX文件在线预览,需下载PPTXjs,将其引入HTML页面,并编写相应的HTML和JS代码,如果是移动端还需调整div大小,这是一种便捷的前端PPTX转HTML技术,适合网页展示使用 PPTX在线预览&#xff0c;使用jquery的插件《PPTXjs》&#xff0c;纯前端实现pptx转html进行…...

uniapp适配暗黑模式配置plus.nativeUI.setUIStyle适配DarkMode配置

uniapp适配暗黑模式配置 目录 uniapp适配暗黑模式配置setUIStyleDarkMode 适配app-plus manifest.json配置theme.json配置pages.json配置页面切换代码实现同步手机暗黑配置额外适配 参考官方文档&#xff1a;https://uniapp.dcloud.net.cn/tutorial/darkmode.html 主要用到api…...

EXCEL 或 WPS 列下划线转驼峰

使用场景&#xff1a; 需要将下划线转驼峰&#xff0c;直接在excel或wps中第一行使用公式&#xff0c;然后快速刷整个列格式即可。全列工下划线转为格式&#xff0c;使用效果如下&#xff1a; 操作步骤&#xff1a; 第一步&#xff1a;在需要显示驼峰的一列&#xff0c;复制以…...

走进Linux的历史发展史

目录 前言 Linux的发展史 UNIX发展的历史 Linux发展历史 开源 企业应用现状 Linux在服务器领域的发展 桌面领域 移动嵌入式领域 云计算/大数据领域 发行版 ​编辑 Linux环境搭建方式 前言 本节博客内容较水&#xff0c;主要介绍Linux的发展历史和其相关的学习内容&a…...

学习yum工具,进行安装软件

目录 1.Linux 软件包管理器 yum 什么是软件包 2.Linux下安装软件的方案 3.Linux软件生态 Linux下载软件的过程&#xff08;Ubuntu、Centos、other&#xff09; 操作系统的好坏评估--- ⽣态问题 为什么会有⼈免费特定社区提供软件&#xff0c;还发布&#xff1f;还提供云服…...

union介绍及使用

union格式 在C中&#xff0c;union是一种特殊的数据类型&#xff0c;它允许在相同的内存位置存储不同的数据类型&#xff0c;但在任意时刻只能使用一个成员。以下是union类型的基本格式说明&#xff1a; union UnionName {memberType1 memberName1;memberType2 memberName2;m…...

安全,服务器证书和SSL连接

业务报错&#xff1a; javax.net.ssl.SSLPeerUnverifiedException: Certificate for <10.5.20.137> doesn’t match any of the subject alternative names: [*.dt.zte.com.cn] at org.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname(SSLConnectionSoc…...

Java结合ElasticSearch根据查询关键字,高亮显示全文数据。

由于es高亮显示机制的问题。当全文内容过多&#xff0c;且搜索中标又少时&#xff0c;就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分&#xff1a; //中文分词解析 post /_analyze {"analyzer":"…...

Design Compiler:Topographical Workshop Lab2

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 本文是对Synopsys Design Compiler Topographical/Graphical Workshop Lab Guide中Lab2的翻译&#xff0c;Lab文件可以从以下链接获取。 Synopsys Design Co…...

【C语言】连接陷阱探秘(1):声明与定义

目录 一、声明与定义的混淆 1.1. 声明(Declaration) 1.2. 定义(Definition) 1.3. 避免混淆的方法 1.4. 示例 二、声明与定义不匹配 2.1. 常见的不匹配情况 2.2. 解决方法 三、外部变量与静态变量的命名冲突 3.1. 外部变量命名冲突 3.2. 静态变量命名冲突 四、缺…...

ChatGPT学术专用版,一键润色纠错+中英互译+批量翻译PDF

ChatGPT academic项目是由中科院团队基于ChatGPT专属定制。论文润色、语法检查、中英互译、代码解释等可一键搞定&#xff0c;堪称科研神器。 功能介绍 我们以3.5版本为例&#xff0c;ChatGPT学术版总共分为五个区域&#xff1a;输入控制区、输出对话区、基础功能区、函数插件…...

python isinstance(True, int)

今天的bug 是布尔类型给的。 >>> a True >>> isinstance(a, int) True>>> a True >>> isinstance(a, bool) True‌Python中的布尔类型&#xff08;bool&#xff09;实际上是整数类型&#xff08;int&#xff09;的一个子类&#xff0c;…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...