翼度科技»论坛 编程开发 python 查看内容

Python OpenCV获取图片的基本参数信息

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
在图像处理领域,了解图像的基本信息是必不可少的第一步。
之前已经使用
  1. cv2.imread()
复制代码
方法将图片读取出来了。我们还可以使用 OpenCV 提供的一些方法去读取图片的尺寸、通道数、图片像素总数等信息。

获取图片宽高和通道数

通过
  1. shape
复制代码
属性可以直接获取图像的维度信息。
  1. import cv2

  2. # 读取图片
  3. img = cv2.imread('德育处主任.jpeg')

  4. # 获取图片的宽、高和通道数
  5. height, width, channels = img.shape
  6. print(f'图片高度: {height}')
  7. print(f'图片宽度: {width}')
  8. print(f'图片通道数: {channels}')
复制代码
我读取的是一张 1280x1280 的彩色的图像。运行代码后,在终端会输出以下内容。
  1. 图片高度: 1280图片宽度: 1280图片通道数: 3
复制代码
注意:如果图片是灰度图,
  1. shape
复制代码
只有两个值(高度和宽度),没有通道数。
处理灰度图的情况:
  1. # 检查是否为灰度图
  2. if len(image.shape) == 2:
  3.     height, width = image.shape
  4.     print("这是灰度图")
  5. else:
  6.     height, width, channels = image.shape
  7.     print("这是彩色图")
复制代码
获取像素数据类型

图片的每个像素都有一个数据类型,常见的数据类型包括
  1. uint8
复制代码
(0-255)。可以通过 Numpy 的
  1. dtype
复制代码
属性获取。
  1. # 获取数据类型
  2. pixel_dtype = img.dtype
  3. print(f"像素数据类型:{pixel_dtype}")
复制代码
我的示例图片是
  1. uint8
复制代码
,所以输出的结果是:
  1. 像素数据类型:uint8
复制代码
计算图片大小(总像素数)

通过宽度、高度和通道数,可以计算图片的大小。用到的属性是
  1. size
复制代码
  1. # 计算总像素数
  2. total_pixels = img.size
  3. print(f"图片的总像素数:{total_pixels}")
复制代码
我的示例图是 1280x1280 的彩色图,每个像素有3个通道。所以上面这段代码在终端会输出:
  1. 图片的总像素数:4915200
复制代码
1280 x 1280 x 3 = 4,915,200
如果需要计算单个通道的大小,只需用图片的 长 x 宽 即可。
到此这篇关于Python OpenCV获取图片的基本参数信息的文章就介绍到这了,更多相关Python获取图片基本参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/python/331196fu4.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具