【Python 图像处理 PIL 系列 13 -- PIL 及 Image.convert 函数介绍】

文章目录

    • Python PIL 介绍
      • PIL 使用介绍
      • PIL convert 介绍
      • PIL convert 使用示例

Python PIL 介绍

PIL 是 Python Image Library 的简称。PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑。比如:改变图像大小、旋转图像、图像格式转换,转换颜色通道,图像增强,直方图处理,插值和滤波等等。PIL 是第三方库,使用之前需要先安装。

pip install pillow

PIL 使用介绍

from PIL import Image
img = Image.open("dog.jpg", mode="r")
print("图片颜色模式:", img.mode)
print("图片的格式:", img.format)
print("图片的大小:", img.size)
'''
输出结果
图片颜色模式: RGB
图片的格式: JPEG
图片的大小: (852, 639)
'''

PIL convert 介绍

Python的Pillow库允许你使用convert()方法进行图像转换。这个方法主要用于改变图像的模式(mode),即图像的颜色系统和位深。
这里是一个convert()方法的大致介绍:

Image.convert(mode=None, matrix=None, dither=None, palette=0, colors=256) 
  • mode:这个参数定义了新图像的模式。常见的模式包括 "L" (灰度图像),"RGB"(真彩色图像),"RGBA"(带透明度的真彩色图像),"CMYK"(青色、品红色、黄色和黑色的印刷颜色)等。

  • matrix:一个可选的转换矩阵。当从"RGB"转换到"L"或者其他模式时可以用。

  • dither:抖动选项,用于将颜色从更高位深减少到更低位深的转换中。

  • palette:当目标模式是"P"时,定义要使用的调色板。

  • colors:当目标模式是"P"时,定义要使用的颜色数目。

PIL convert 使用示例

下面是如何使用 convert() 函数将常见的图像转换为 RGB565,RGB666,RGB888等格式的例子。需要注意的是,Pillow库直接不支持"RGB565"或"RGB666"这类模式,因为这些不是标准的图像模式。但是我们可以使用位操作将"Pillow"中的标准RGB图像转换为这些格式的等价表示。

以下是一个将图像转换为RGB888(这是正常的"RGB"模式),RGB565和RGB666的例子:

from PIL import Image 
# 打开一个图像文件 
img = Image.open("input.jpg").convert("RGB") # 将图像转换为RGB888,这其实就是标准的"RGB"模式 
rgb888_img = img # 自定义一个函数将RGB888转换为RGB565 def convert_to_rgb565(r, g, b): # 将红色从8位转换为5位,绿色从8位转换为6位,蓝色从8位转换为5位 return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3) # 自定义一个函数将RGB888转换为RGB666 
def convert_to_rgb666(r, g, b): # 将红色,绿色和蓝色都从8位转换为6位 return ((r & 0xFC) << 4) | ((g & 0xFC) << 2) | (b & 0xFC) # 使用自定义的转换函数将每个像素转换为RGB565或RGB666 
rgb565_data = [convert_to_rgb565(*pixel) for pixel in img.getdata()] 
rgb666_data = [convert_to_rgb666(*pixel) for pixel in img.getdata()] # 将转换后的数据保存或使用 
# 注意:这些数据现在是整数列表,不再是标准的图像格式,需要进一步处理才能变为可视化的图像或写入文件 

过上述代码,我们可以得到代表RGB565和RGB666格式的数据。这些数据可以用于嵌入式系统或其他需要这些特定格式的平台。然而,这些数据不是Pillow Image对象,因此如果我们想要把它们保存到文件或以图像的形式展示出来,可能需要通过其他库或自定义方法来实现。

推荐阅读
https://blog.csdn.net/Roaddd/article/details/113595449
https://www.zhihu.com/question/297015153/answer/2384830243

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米澎湃和华为原生鸿蒙,那个更有发展前景?

小米的澎湃系统暂时不了解&#xff0c;但华为的鸿蒙系统值得一说。 就目前鸿蒙而言&#xff1b;24年初鸿蒙星河版面向开发者开放申请。其底座全线自研&#xff0c;去掉了传统的 Linux 内核以及 AOSP 安卓开放源代码项目等代码&#xff0c;仅支持鸿蒙内核和鸿蒙系统的应用。星河…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(一)-向量扩展编程模型

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

我的第②个出海工具站 - 2024年50个出海工具站计划

为了大家更好的使用各种出海工具。我上线了一版 出海工具导航 站点&#xff0c;经常使用的可以收藏下&#xff0c;我文内使用的网站都集成在了这里&#xff0c;非常使用。 随着AIGC的到来&#xff0c;2024年到了海外工具回暖的一年。今年计划上线50款出海工具站计划&#xff0c…

增加一个用户自定义开关的功能

为了增加一个用户自定义开关的功能&#xff0c;我们需要引入一个新的接口&#xff0c;比如一个命令行参数或者一个配置文件&#xff0c;让用户能够控制窗帘系统的开关状态。下面是一个更新后的代码示例&#xff0c;其中包含了用户自定义开关的功能&#xff1a; #include <s…

【不可不知的考研复试秘籍 4】

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

激光炸弹 刷题笔记

前置知识 二维前缀和 子矩阵的和 刷题笔记 {二维前缀和}-CSDN博客 思路 参考二维前缀和 将子矩阵的和 做成动态矩阵 一个个矩阵搜索 符合要求边长 矩阵中的元素和最大值 将x1,y1用i-k,j-k表示即可 x2,y2用i&#xff0c;j表示 代码 #include<iostream> #include<…

Axios 面试题

Axios 面试题 问题描述&#xff1a; 什么是 Axios&#xff1f;它的主要特点是什么&#xff1f; 答案&#xff1a; Axios 是一个基于 Promise 的 HTTP 客户端库&#xff0c;用于在浏览器和 Node.js 中发送 HTTP 请求。它具有以下主要特点&#xff1a; 支持浏览器和 Node.js 环境…

MongoDB获评2023年Gartner®云数据库管理系统“领导者”

MongoDB 很荣幸在《2023 年 Gartner 云数据库管理系统 (CDBMS) 魔力象限》报告中被评为领导者。我们相信这一成就让 MongoDB 成为唯一一家连续两年斩获“领导者”称号的纯应用程序数据库服务提供商。 社区及开发者数据平台用户的需求一向是 MongoDB 关注的重点&#xff0c;而这…

tomcat 搭建博客 及破解数据库密码

一 tomcat 搭建博客 &#xff08;一&#xff09;博客安装包 1&#xff0c; 把博客war包 放到 webapps 文件夹下 2&#xff0c;会自动解压 3&#xff0c;做个软连接 方便后续操作 可以注意到 因为war包 是又tomcat 自己解压的 所以属主数组还是 tomcat &#xff08…

基于springboot+vue的多媒体素材库的开发与应用系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

静态时序分析:SDC约束命令set_disable_timing详解

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定对象列表 指定源、目的引脚 指定恢复 简单使用 写在最后 上一章中&#xff0c;我们学习了如何使用set_case_analysis模式分析命令&#xff0c;它通过指定某个端口或引脚为固定值&…

代码随想录第50天|● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV

文章目录 ● 123.买卖股票的最佳时机III思路代码一&#xff1a;dp二维数组代码二&#xff1a;四个数存储 ● 188.买卖股票的最佳时机IV思路&#xff1a;代码&#xff1a; ● 123.买卖股票的最佳时机III 思路 dp[i][j]中 i表示第i天&#xff0c;j为 [0 - 4] 五个状态&#xff0…

MathType玩耍指南

ML论文里特别多公式&#xff0c;里面有各种奇奇怪怪符号&#xff0c;怎么打出来呢&#xff1f; 认识这个符号&#xff0c;直接搜索 比如认识上面那个indicator function是个I&#xff0c;有时候是1&#xff0c;那么就搜索mathtype怎么打印双线符号这样的&#xff1b; 不认识…

git遇到的报错

这是小编在gits所遇到的报错集合&#xff0c;可能不会包含大家的报错信息但是咱们可以在评论区留言共同收集git的报错信息以及解决方法&#xff01; SSL证书问题 解决办法&#xff1a;git命令下运行 git config --global http.sslVerify false 然后再进行重新clone代码 Git应…

美易官方《盘前:美国股指期货温和走低》

美国股指期货在盘前交易中温和走低&#xff0c;市场情绪在美联储主席鲍威尔即将作证前显得谨慎。投资者对即将公布的证词内容充满期待&#xff0c;以寻求对美联储未来货币政策的更多线索。 鲍威尔即将在国会作证&#xff0c;这是市场关注的焦点事件之一。他的证词可能会对美元汇…

信钰证券|昨夜,“金龙”大涨

当地时间2月27日&#xff0c;我国资产自开盘一路走高&#xff0c;抢手中概股普涨&#xff0c;纳斯达克我国金龙指数涨2.10%。其中&#xff0c;抱负轿车涨超11%&#xff0c;网易涨超5%&#xff0c;爱奇艺、微博涨超4%。 美股方面&#xff0c;三大指数涨跌纷歧。到收盘&#xff…

【ArcPy】游标访问几何数据

访问质心坐标相关数据 结果展示 代码 import arcpy shppath r"C:\Users\admin\Desktop\excelfile\a2.shp" with arcpy.da.SearchCursor(shppath, ["SHAPE","SHAPEXY","SHAPETRUECENTROID","SHAPEX","SHAPEY",&q…

TestNG @Test注释属性-expectedExceptions属性

在这篇文章中&#xff0c;我们将讨论TestNG中的exceptedExceptions属性。 exceptedExceptions属性有什么作用&#xff1f;有时&#xff0c;在我们的测试用例中&#xff0c;我们需要验证是否发生了某些异常。这个属性将帮助我们实现这一点。它需要一个异常类数组并检查该异常是…

MongoDB Helloworld For Window

1. 下载MongoDB Download MongoDB Community Server | MongoDB 2. 安装MongoDB 3. 创建DB. 4. 用java code 连接mongo. 做增删改查操作。 pom.xml <dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver-sync</artifactId>&…

初次实战SQL注入

目录 1.判断漏洞是否存在 2.判断注入类型&#xff08;数字型/字符型&#xff09; 3.猜列数 4.联合查询判断回显位 6.获取数据库表明 此实验为本人学习内容&#xff0c;从未攻击任何网站&#xff01;&#xff01;&#xff01;请伙伴们同样遵纪守法&#xff01;&#xff01;…