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简易版文搜图服务
一、实现 使用目录结构: templates ---upload.html faiss_app.py 前端代码:upload.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&quo…...
【机器学习】数学知识:欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)
欧式距离和曼哈顿距离是两种常用的距离度量方法,用于衡量两点之间的相似性或差异性。它们在几何分析、数据挖掘、机器学习等领域有广泛应用。 1. 欧式距离 概念 欧式距离(Euclidean Distance)是最常见的直线距离度量方法,源于欧…...
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提交方式, 使用pre-job还是yarn-session模式,以及Application模式,好处? Flink提交模式模式对比 3、Flink UV统计实现 set布隆过滤器redis 有误…...
Spring Boot框架:电商系统的技术革新
4 系统设计 网上商城系统的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全…...
一键抠图:免费安全的在线图片去除背景工具
利用前端技术,轻松去除图片背景 得益于Webassembly技术的快速发展,前端可以实现的功能越来越多。本文将介绍一款基于briaai的 RMBG-1.4型号的 预训练模型实现的在线图片去除背景(抠图)工具。地址:https://www.potatotools.top/toolsEntrance…...
vue项目PC端和移动端实现在线预览pptx文件
通过PPTXjs插件,实现PPTX文件在线预览,需下载PPTXjs,将其引入HTML页面,并编写相应的HTML和JS代码,如果是移动端还需调整div大小,这是一种便捷的前端PPTX转HTML技术,适合网页展示使用 PPTX在线预览,使用jquery的插件《PPTXjs》,纯前端实现pptx转html进行…...
uniapp适配暗黑模式配置plus.nativeUI.setUIStyle适配DarkMode配置
uniapp适配暗黑模式配置 目录 uniapp适配暗黑模式配置setUIStyleDarkMode 适配app-plus manifest.json配置theme.json配置pages.json配置页面切换代码实现同步手机暗黑配置额外适配 参考官方文档:https://uniapp.dcloud.net.cn/tutorial/darkmode.html 主要用到api…...
EXCEL 或 WPS 列下划线转驼峰
使用场景: 需要将下划线转驼峰,直接在excel或wps中第一行使用公式,然后快速刷整个列格式即可。全列工下划线转为格式,使用效果如下: 操作步骤: 第一步:在需要显示驼峰的一列,复制以…...
走进Linux的历史发展史
目录 前言 Linux的发展史 UNIX发展的历史 Linux发展历史 开源 企业应用现状 Linux在服务器领域的发展 桌面领域 移动嵌入式领域 云计算/大数据领域 发行版 编辑 Linux环境搭建方式 前言 本节博客内容较水,主要介绍Linux的发展历史和其相关的学习内容&a…...
学习yum工具,进行安装软件
目录 1.Linux 软件包管理器 yum 什么是软件包 2.Linux下安装软件的方案 3.Linux软件生态 Linux下载软件的过程(Ubuntu、Centos、other) 操作系统的好坏评估--- ⽣态问题 为什么会有⼈免费特定社区提供软件,还发布?还提供云服…...
union介绍及使用
union格式 在C中,union是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型,但在任意时刻只能使用一个成员。以下是union类型的基本格式说明: union UnionName {memberType1 memberName1;memberType2 memberName2;m…...
安全,服务器证书和SSL连接
业务报错: 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高亮显示机制的问题。当全文内容过多,且搜索中标又少时,就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分: //中文分词解析 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的翻译,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专属定制。论文润色、语法检查、中英互译、代码解释等可一键搞定,堪称科研神器。 功能介绍 我们以3.5版本为例,ChatGPT学术版总共分为五个区域:输入控制区、输出对话区、基础功能区、函数插件…...
python isinstance(True, int)
今天的bug 是布尔类型给的。 >>> a True >>> isinstance(a, int) True>>> a True >>> isinstance(a, bool) TruePython中的布尔类型(bool)实际上是整数类型(int)的一个子类,…...
网易云音乐NCM格式转换:三步解密法让音乐自由播放
网易云音乐NCM格式转换:三步解密法让音乐自由播放 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾在网易云音乐下载了心爱的歌曲,却发现只能在特定播放器中欣赏?当你想要在其他设备或播放…...
VMware Unlocker终极指南:3分钟免费解锁macOS虚拟机支持
VMware Unlocker终极指南:3分钟免费解锁macOS虚拟机支持 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 想要在Windows或Linux电脑上体验macOS系统,却苦于VMware没有苹果选项&am…...
NotebookLM脑机接口性能天花板已破?斯坦福NeuroAI Lab最新benchmark显示延迟<83ms,但仅开放给签署NDA的前50个研究团队
更多请点击: https://kaifayun.com 第一章:NotebookLM脑机接口研究概览 NotebookLM 是 Google 推出的基于用户自有文档进行深度理解与推理的 AI 助手,虽其本身并非直接实现脑机接口(BCI)的硬件系统,但正成…...
蚂蚁百灵 Ring-2.6-1T 开源解析:万亿级思考模型如何实现「按需推理」
引言 2026年5月,蚂蚁百灵团队正式开源了其旗舰级思考模型 Ring-2.6-1T,这是一款拥有万亿参数的推理模型,在 AIME 2026 数学竞赛基准测试中取得了 95.83分 的惊人成绩,一跃成为国产开源 Agent 模型的新里程碑。更值得关注的是,该模型首次引入了 可调节的 Reasoning Effort…...
Arm Compiler 6.16LTS功能安全认证语言扩展解析
1. Arm Compiler for Embedded FuSa 6.16LTS语言扩展支持现状解析在功能安全关键型嵌入式系统开发中,编译器工具链的认证状态直接关系到最终产品的合规性。Arm Compiler for Embedded FuSa 6.16LTS作为经过功能安全认证的工具链,其语言扩展支持情况需要开…...
终极窗口置顶解决方案:用AlwaysOnTop告别多任务切换烦恼
终极窗口置顶解决方案:用AlwaysOnTop告别多任务切换烦恼 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常需要在不同窗口间来回切换?是否觉得频…...
NotebookLM图书馆学研究风险清单(含3类学术伦理红线+4种元数据污染场景)
更多请点击: https://kaifayun.com 第一章:NotebookLM图书馆学研究风险清单(含3类学术伦理红线4种元数据污染场景) NotebookLM 作为面向研究者的AI增强型笔记工具,其在图书馆学实证研究中的深度应用正引发对学术规范与…...
双足机器人步态规划算法与动平衡控制【附仿真】
✨ 长期致力于双足机器人、步态规划、动平衡控制、运动发散分量、模型预测控制、二次优化、可视化仿真研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)…...
深入解析mootdx:Python通达信数据接口的架构设计与性能优化
深入解析mootdx:Python通达信数据接口的架构设计与性能优化 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化交易和金融数据分析领域,高效稳定的数据获取是成功的关键…...
启扬RK3568核心板如何赋能智能炒菜机:从嵌入式主控到AI烹饪
1. 项目概述:当嵌入式核心板遇上智能炒菜机在餐饮后厨这个看似传统,实则对效率、成本和一致性要求极高的领域,痛点一直非常明确。人工炒菜,老师傅的手艺固然可贵,但出餐速度受限于体力,菜品口味因厨师状态、…...
