news 2026/5/12 20:42:18

PIL库将图片位深度是1、8、32统一转换为24的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PIL库将图片位深度是1、8、32统一转换为24的方法

深度学习中通常遇到各种各样的图片,位深度有的时候各不相同,容易影响训练测试,因此为了避免麻烦,一般将图片统一为位深度是24

  1. 通用转换方法
fromPILimportImagedefconvert_to_24bit(input_path,output_path):""" 将任意位深度的图片转换为24位RGB图像 参数: input_path: 输入图片路径 output_path: 输出图片路径 """# 打开图片img=Image.open(input_path)# 转换为RGB模式(24位)rgb_img=img.convert('RGB')# 保存图片rgb_img.save(output_path)print(f"转换完成:{input_path}->{output_path}")print(f"原始模式:{img.mode}, 转换后模式:{rgb_img.mode}")print(f"原始大小:{img.size}, 转换后大小:{rgb_img.size}")returnrgb_img# 使用示例convert_to_24bit('input.png','output_24bit.jpg')
  1. 针对不同位深度的详细转换方法
fromPILimportImageimportnumpyasnpdefconvert_specific_bit_depth(input_path,output_path):""" 针对不同位深度进行详细转换 """img=Image.open(input_path)print(f"原始图像信息:")print(f" 模式:{img.mode}")print(f" 大小:{img.size}")print(f" 位深度:{img.bits}(如果可用)")# 根据原始模式进行相应处理ifimg.mode=='1':# 1位黑白图像print("处理1位黑白图像...")# 方法1: 直接转换为RGBrgb_img=img.convert('RGB')# 方法2: 通过L模式中转(保留更多控制)# gray_img = img.convert('L')# rgb_img = gray_img.convert('RGB')elifimg.mode=='L':# 8位灰度图像print("处理8位灰度图像...")# 将灰度转换为RGB(三个通道值相同)rgb_img=img.convert('RGB')elifimg.mode=='P':# 调色板模式(通常是4位或8位)print("处理调色板图像...")# 先转换为RGBifimg.palette:print(f" 调色板模式:{img.palette.mode}")rgb_img=img.convert('RGB')elifimg.mode=='RGBA':# 32位RGBA图像print("处理32位RGBA图像...")# 创建白色背景background=Image.new('RGB',img.size,(255,255,255))# 将RGBA图像粘贴到白色背景上background.paste(img,mask=img.split()[3])# 使用alpha通道作为掩码rgb_img=backgroundelifimg.mode=='CMYK':# 32位CMYK图像print("处理CMYK图像...")rgb_img=img.convert('RGB')elifimg.mode=='RGB':# 已经是24位print("图像已经是24位RGB模式")rgb_img=imgelse:# 其他模式print(f"处理未知模式:{img.mode}")rgb_img=img.convert('RGB')# 保存图像rgb_img.save(output_path,quality=95)print(f"转换完成 ->{output_path}")print(f"转换后模式:{rgb_img.mode}")returnrgb_img
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 2:29:49

【UI Qt】入门笔记

目录 1、Qt 主要版本发展历程 2、各版本详细对比表 3、底层库对比 4、Qt基类 5、举例 6、QApplication与窗口关联 1、Qt 主要版本发展历程 版本 发布年份 主要特点 当前状态 Qt 1 1995 第一个公开版本,仅支持 Unix/X11 已淘汰 Qt 2 1999 引入信号槽…

作者头像 李华
网站建设 2026/5/10 4:09:46

毕业论文任务书范文推荐:7大平台+AI修改工具

毕业论文任务书范文推荐:7大平台AI修改工具 工具名称 核心功能 生成速度 适用场景 独特优势 aibiye 论文初稿生成 20-30分钟 全学科通用 自动插入图表公式 aicheck 初稿查重 20-30分钟 急需查重场景 独创降AIGC算法 askpaper 初稿生成 20-30分钟 …

作者头像 李华
网站建设 2026/5/9 2:49:58

JavaScript处理时间详解:时分秒的获取、计算与格式化

在JavaScript中处理时间,尤其是时、分、秒的获取、计算与格式化,是前端开发中一项基础且频繁的任务。无论是制作倒计时、显示当前时间,还是处理时间间隔,都离不开对这三个时间单位的精确操作。本文将从实际应用场景出发&#xff0…

作者头像 李华
网站建设 2026/5/12 14:13:39

AI基础从入门到实战:完整学习路线与代码实践

一、AI学习路线规划 AI学习需要遵循"数学基础→编程工具→机器学习→深度学习→项目实战"的系统路径,通常需要9-12个月完成从零基础到项目实战的完整学习。 阶段一:数学与编程基础(1-3个月) 数学基础是AI的基石&#…

作者头像 李华
网站建设 2026/5/9 1:59:17

驾驭昇腾CANN异步流水线从算子优化到系统级性能跃迁

目录 1 摘要 2 技术原理 2.1 架构设计理念解析 2.2 核心算法实现 2.2.1 异步执行模型深度解析 2.2.2 Stream并行机制实现原理 2.3 性能特性分析 2.3.1 同步 vs 异步性能对比 2.3.2 内存访问模式优化 3 实战部分 3.1 完整可运行代码示例 3.2 分步骤实现指南 步骤1&…

作者头像 李华