Python学习笔记——PIL库(Pillow库)总结
一、图像数据的格式
①jpg
支持高级别的压缩,利用部分损耗,使图片变小,方便网络传播。
②png
无损压缩格式,比jpg略大,较好的保存图片画质,支持透明效果。
③gif
动图效果,多帧图像组合到一起形成动画。
④tiff
高画质,无压缩格式。打开速度慢,比jpg、png大十倍。
⑤raw
原始图像数据。打开速度慢,比jpg、png大十倍。
⑥webp
WebP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式。
二、像素
图像的宽度和高度都是以像素为单位的。
像素是组成图像的最小方块。
这些像素块有颜色位置和色彩值。
三、最简案例
from PIL import Image
#1.打开图片
img = Image.open('1.png')
#2.处理图片
#3.预览、保存
img.show()
img.save('2.png')
四、图像获取
from PIL import Image
#方式1
img = Image.open('1.png')
#方式2
img = Image.new("RGB",(300,300),"green")#模式,大小,颜色
五、图像的色彩模式
L #灰度图像
RGB #彩色图像,红,绿,蓝三个值控制颜色
RGBA #比RGB多了一个alpha值,代表透明度。
六、img对象的属性
①img.format 图像格式
②img.size 图像尺寸
③img.mode 图像的色彩模式
七、img对象的方法
①img.convert() 转换图像模式
img2 = img.convert("L")
②img.resize() 重置尺寸
img2 = img.resize((300,200))
③img.rotate() 旋转图像
img2 = img.rotate(45)#正数:逆时针;负数:顺时针
④img.crop() 截图
img2 = img.crop((100,100,200,200))#左上角坐标,右下角坐标
⑤img.show() 预览
img.show()
⑥img.save()保存
img.save('2.png')
⑦img.filter()#图像滤波
from PIL import ImageFilterimg2 = img.filter(ImageFilter.CONTOUR)#传入滤波方式
| BLUR | 模糊效果,使图像较原图模糊一些 |
| CONTOUR | 轮廓效果,将图像的轮廓提取出来 |
| DETAIL | 细节效果,显化图像中的细节 |
| EDGE_ENHANCE | 图像边界加强效果,使图像的边缘部分突出 |
| EDGE_ENHANCE_MORE | 使图像的边缘部分更加明显 |
| EMBOSS | 图像的雕效果 |
| FIND_EDGES | 图像的边界效果 |
| SHARPEN | 图像的锐化效果,使图像变得更清晰 |
| SMOOTH | 图像的平滑效果,使图像平缓,改善图片质量 |
| SMOOTH_MORE | 使图像变得更加平滑 |
八、图像增强功能
from PIL import ImageEnhance
#2.处理图片
img_eh = ImageEnhance.Color(img)
img2 = img_eh.enhance(0.5)#1是正常
| ImageEnhance.Color() | 调整图像的彩色 |
| ImageEnhance.Contrast() | 调整图像的对比度 |
| ImageEnhance.Brightness() | 调整图像的亮度 |
| ImageEnhance.Sharpness() | 调整图像的锐度 |
相关文章:
Python学习笔记——PIL库(Pillow库)总结
一、图像数据的格式 ①jpg 支持高级别的压缩,利用部分损耗,使图片变小,方便网络传播。 ②png 无损压缩格式,比jpg略大,较好的保存图片画质,支持透明效果。 ③gif 动图效果,多帧图像组合到…...
C. Build Permutation【整数理论、构造、思维】
链接 理论基础 结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。 构造⌈n⌉2构造\lceil \sqrt{n}\rceil^2构造⌈…...
关于ETL的两种架构(ETL架构和ELT架构)
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象…...
android系统目录
环境:android studio引入android系统源码android和ubuntu策略路由的差异android源码编译问题(单编)repo(android源码)命令使用和注意事项wifi:wifi的加密类型梳理android11 wifisetting 流程跟踪android wifi热点settingandroid n…...
【C/C++】中【typedef】用法大全
总结一下typedef用法,一共七种,分别是:为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。 目录 一、为基本数据类型起别名 二、为结构体起别名 三、为指针类型起别名 四…...
超实用的公众号运营攻略分享,纯干货
很多小伙伴抱怨,公众号运营真的越来越难做了! 每天会因为少得可怜的阅读量发愁,每天会因为纠结写什么选题发愁,每天更会因为公众号没有什么起色而感到无力。 现阶段公众号运营趋于饱和状态,公众号创建门槛低…...
编写NodeJs脚本实现接口请求
要编写运行脚本,需要先搭建开发环境 环境搭建 nodeJs脚本运行,当然需要先安装nodejs环境 官方地址在这里: nodejs官网 打开官网地址,可以看到下面一句话: Node.js is an open-source, cross-platform JavaScript runtime environment. 在打开的页面,可以直接下载最新的…...
【无人机】回波状态网络(ESN)在固定翼无人机非线性控制中的应用(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
YAML 文件简介
简介 我们在安装 kubernetes 集群的时候使用了一些 YAML 文件来创建相关的资源,但是对 YAML 文件还是非常陌生。所以我们先来简单看一看 YAML 文件是如何工作的,并使用 YAML 文件来定义一个 kubernetes pod,然后再来定义一个 kubernetes dep…...
Python四大主题之一【 Web】 编程框架
目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django、Tornado、Flask、Twisted。 …...
【C++】哈希表
1. unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 ,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进行…...
深度学习入门(六十七)循环神经网络——注意力机制
深度学习入门(六十七)循环神经网络——注意力机制前言循环神经网络——注意力机制课件心理学注意力机制注意力机制是显式地考虑随意线索非参注意力池化层Nadaraya-Watson 核回归:总结教材(注意力提示)1 生物学中的注意…...
阿里云云通信风控系统的架构与实践
作者:铭杰 阿里云云通信创立于 2017 年,历经 5 年发展已经孵化出智能消息、智能语音、隐私号、号码百科等多个热门产品。目前,已成为了国内云通信市场的领头羊,在国际市场上服务范围也覆盖了 200 多个国家。随着业务的不断壮大&am…...
【性能测试】loadrunner(一)知识准备
【性能测试】loadrunner(一)知识准备 目录:导读 1.0. 前言 1.1 性能测试术语介绍 1.2 性能测试分类 1.3 HTTP我们需要知道的 1.4 Loadrunner 12.55安装 1.0. 前言 在性能测试中,牵扯到了许多比较杂的知识点,…...
【Vue3源码】第五章 ref的原理 实现ref
【Vue3源码】第五章 ref的原理 实现ref 上一章节我们实现了reactive 和 readonly 嵌套对象转换功能,以及shallowReadonly 和isProxy几个简单的API。 这一章我们开始实现 ref 及其它配套的isRef、unRef 和 proxyRefs 1、实现ref 接受一个内部值,返回一…...
[Flink]部署模式(看pdf上的放上面)
运行一个wordcountval dataStream: DataStream[String] environment.socketTextStream("hadoop1", 7777) //流式数据不能进行groupBy,流式数据要来一条处理一次.0表示第一个元素,1表示第二个元素 //keyBy(0)根据第一个元素进行分组 val out: DataStream[(String, In…...
Linux 查看 CPU 信息,机器型号,内存等信息
平时用的可能少,但需要记住,使用的命令,转载https://my.oschina.net/hunterli/blog/140783,以记录学习 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/…...
三维量子力学 量子力学(3)
动量ppp有三个分量,为pxp_xpx等。它们分别满足与位置坐标的对易关系,比如px−iℏ∂∂xp_x-i\hbar\frac{\partial }{\partial x}px−iℏ∂x∂。可以用位置坐标梯度算符表示即p−iℏ∇\bm{p}-i\hbar\nablap−iℏ∇。位置矢量用r\bm{r}r表示。 在d3r…...
Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据
目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 本节源码 https://github.com/…...
Java文件IO操作:File类的相关内容
Java文件IO操作一、File类1.相对路径和绝对路径2.路径分隔符(同一路径下、多个路径下)3.实例化4.常见方法一、File类 File类继承自Object类,实现了Serializable接口和Comparable接口; File类属于java.io包; File类是文…...
AdGuard浏览器扩展终极指南:3步打造无广告浏览体验
AdGuard浏览器扩展终极指南:3步打造无广告浏览体验 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 你是否厌倦了网页上无处不在的广告弹窗?是否担心…...
3步永久解锁IDM:从试用期烦恼到终身免费使用的完整指南
3步永久解锁IDM:从试用期烦恼到终身免费使用的完整指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script IDM Activation Script(IAS&#…...
[特殊字符]OpenClaw 优化系列(三):基于WSL的OpenClaw备份恢复与文件交互
告别环境崩塌恐惧症,一文掌握WSL下OpenClaw的数据安全与高效操作 Windows下WSL环境准备已经在前面讲了:🦞 OpenClaw 部署环境准备:Windows下WSL安装及配置全攻略。至于OpenClaw部署,教程已经很多很多了,只…...
macOS极简安装法:OpenClaw汉化版对接千问3.5-27B镜像
macOS极简安装法:OpenClaw汉化版对接千问3.5-27B镜像 1. 为什么选择npm汉化版? 去年第一次接触OpenClaw时,我按照官方文档用curl脚本安装,结果在macOS Monterey上卡在了Python依赖报错环节。后来发现是系统自带的Python 2.7与新…...
Qwen3-ASR-1.7B在软件测试中的语音指令自动化实践
Qwen3-ASR-1.7B在软件测试中的语音指令自动化实践 1. 引言 想象一下这样的场景:测试工程师小王正在执行复杂的软件测试流程,双手忙着操作多个设备,眼睛盯着屏幕上的测试结果,突然需要暂停当前测试、切换到另一个测试用例。传统方…...
【ProtoBuf 实战训练】网络版通讯录
文章目录1. 通讯录 4.0 实现(网络版)2. 环境搭建2.1 搭建服务端2.2 搭建客户端2.3 运行结果3. 新增联系人功能3.1 协议约定3.2 协议接口定义 (.proto)3.2.1 AddContactRequest(请求消息)3.2.2 AddContactResponse(响应…...
SE110 0608830109伺服控制器
SE110 0608830109 伺服控制器简介SE110 0608830109 是工业自动化系统中的伺服控制器模块主要用于驱动和控制伺服电机,实现精确运动控制支持闭环控制,确保位置、速度和加速度精度内置高速处理器,可快速响应控制指令提供多种控制模式࿰…...
Lychee-Rerank实战案例:专利文献检索中权利要求与技术方案的语义匹配
Lychee-Rerank实战案例:专利文献检索中权利要求与技术方案的语义匹配 1. 引言:当专利检索遇上语义匹配难题 如果你是专利工程师、知识产权分析师,或者从事技术研发工作,一定遇到过这样的场景:面对海量的专利文献&…...
告别回调地狱:PromiseKit函数式三剑客拯救异步代码
告别回调地狱:PromiseKit函数式三剑客拯救异步代码 【免费下载链接】PromiseKit Promises for Swift & ObjC. 项目地址: https://gitcode.com/gh_mirrors/pr/PromiseKit PromiseKit 是 Swift 和 Objective-C 开发者的异步编程救星,它通过优雅…...
SecGPT-14B+OpenClaw联调指南:解决模型响应超时问题
SecGPT-14BOpenClaw联调指南:解决模型响应超时问题 1. 问题背景与场景定位 上周在尝试用OpenClaw调用SecGPT-14B分析一份12万字的网络安全报告时,遭遇了令人头疼的响应超时问题。这个场景很典型——当我们需要处理长文本安全分析时,模型推理…...
