OpenCV-Python获取图片的基本参数信息
点赞 关注 收藏 = 学会了
在图像处理领域,了解图像的基本信息是必不可少的第一步。
之前已经使用 cv2.imread() 方法将图片读取出来了。我们还可以使用 OpenCV 提供的一些方法去读取图片的尺寸、通道数、图片像素总数等信息。
获取图片宽高和通道数
通过 shape 属性可以直接获取图像的维度信息。
import cv2# 读取图片img = cv2.imread('德育处主任.jpeg')# 获取图片的宽、高和通道数height, width, channels = img.shapeprint(f'图片高度: {height}')print(f'图片宽度: {width}') print(f'图片通道数: {channels}')
我读取的是一张 1280x1280 的彩色图像。运行代码后,在终端会输出以下内容。
代码语言:javascript复制图片高度: 1280图片宽度: 1280图片通道数: 3
注意:如果图片是灰度图,shape 只有两个值(高度和宽度),没有通道数。
处理灰度图的情况:
代码语言:javascript复制# 检查是否为灰度图if len(image.shape) == 2:height, width = image.shapeprint("这是灰度图")else:height, width, channels = image.shapeprint("这是彩色图")
获取像素数据类型
图片的每个像素都有一个数据类型,常见的数据类型包括 uint8(0-255)。可以通过 Numpy 的 dtype 属性获取。
# 获取数据类型pixel_dtype = img.dtypeprint(f"像素数据类型:{pixel_dtype}")
我的示例图片是 uint8,所以输出的结果是:
像素数据类型:uint8
计算图片大小(总像素数)
通过宽度、高度和通道数,可以计算图片的大小。用到的属性是 size。
# 计算总像素数total_pixels = img.sizeprint(f"图片的总像素数:{total_pixels}")
我的示例图是 1280x1280 的彩色图,每个像素有3个通道。所以上面这段代码在终端会输出:
代码语言:javascript复制图片的总像素数:4915200
1280 x 1280 x 3 = 4,915,200
如果需要计算单个通道的大小,只需用图片的 长 x 宽 即可。
微信图片_20211120101742.gif
点赞 关注 收藏 = 学会了
本文参与腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-11-22,如有侵权请联系 [email protected] 删除-
07.05
百战天虫官方网址入口 百战天虫官方首页地址
-
07.05
最强祖师变异灵兽如何获得
-
07.05
《我独自升级:超越系统》剧场版电影在 Anime Expo 正式亮相
-
07.05
今日好价推荐:赛博朋克2077:往日之影:标准收藏系列促销:Nintendo Switch 2 摄像头及更多内容
-
07.05
DNF年套装哪个好
-
07.05
正惊GIF:必须点赞!超美空姐服务如此周到 小伙直接害羞脸红
-
-
下载
- 《神剑伏魔录》(神剑风云)游戏音乐合集
- 其他游戏|7.73 MB
- 一款非常好玩的武侠闯关游戏
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- 《生化危机:浣熊市行动》免安装中文硬盘版下载
- 单机|6310 MB
- 一款以动作射击为主题的游戏
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏