IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用 PIL OpenCV Matplotlib 获取图片通道数 -> 正文阅读

[人工智能]使用 PIL OpenCV Matplotlib 获取图片通道数

作者:recommend-item-box type_blog clearfix

1. PIL

img = Image.open(img_path)
# getbands() 返回包含此图像中每个波段名称的元组。例如,RGB 图像返回 (“R”, “G”, “B”) 。
len(img.getbands())

[参考] https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.getbands

[参考] python - Number of channels in pil (pillow) image - Stack Overflow: https://stackoverflow.com/questions/52962969/number-of-channels-in-pil-pillow-image

2. OpenCV

import cv2
img = cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
# img.shape 包含三个值依次为垂直尺寸(高),水平尺寸(宽)和通道数
img.shape[2]

3. Matplotlib (plt)

This function exists for historical reasons. It is recommended to use PIL.Image.open instead for loading images.

官方推荐使用 PIL.Image.open 读取图片,故这儿也不再展示 Matplotlib 读取图片的方式

[参考] matplotlib.pyplot.imread — Matplotlib 3.5.2 documentation: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imread.html

4. 特殊情况(OpenCV, PIL 读取通道数结果不同)

4.1. 场景

palette 类型的图像中 (img.modep) ,也就是索引值组成的图像时,OpenCV 和 PIL 读取的通道数结果不同。

4.2. 原因

OpenCV 会自动加载扩展,将此类型图片转化为 RGB 图像处理,所以通道数会显示为 3;PIL 保留原始读取结果,所以通道数为 1

综上在识别图片通道数时,个人更加推荐 PIL

[参考] opencv - why does reading image with cv2 has different behavior from PIL? - Stack Overflow: https://stackoverflow.com/questions/61952256/why-does-reading-image-with-cv2-has-different-behavior-from-pil

[扩展] python - What is the difference between images in ‘P’ and ‘L’ mode in PIL? - Stack Overflow: https://stackoverflow.com/questions/52307290/what-is-the-difference-between-images-in-p-and-l-mode-in-pil/52307690#52307690


  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-03 23:58:52  更:2022-06-04 00:00:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:31:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码