在图像处理领域,了解图像的基本信息是必不可少的第一步。
之前已经使用 cv2.imread()
方法将图片读取出来了。我们还可以使用 OpenCV 提供的一些方法去读取图片的尺寸、通道数、图片像素总数等信息。
获取图片宽高和通道数
通过 shape
属性可以直接获取图像的维度信息。
1 2 3 4 5 6 7 8 9 10 | import cv2 # 读取图片 img = cv2.imread( '德育处主任.jpeg' ) # 获取图片的宽、高和通道数 height, width, channels = img.shape print (f '图片高度: {height}' ) print (f '图片宽度: {width}' ) print (f '图片通道数: {channels}' ) |
我读取的是一张 1280×1280 的彩色的图像。运行代码后,在终端会输出以下内容。
图片高度: 1280
图片宽度: 1280
图片通道数: 3
注意:如果图片是灰度图,shape
只有两个值(高度和宽度),没有通道数。
处理灰度图的情况:
1 2 3 4 5 6 7 | # 检查是否为灰度图 if len (image.shape) = = 2 : height, width = image.shape print ( "这是灰度图" ) else : height, width, channels = image.shape print ( "这是彩色图" ) |
获取像素数据类型
图片的每个像素都有一个数据类型,常见的数据类型包括 uint8
(0-255)。可以通过 Numpy 的 dtype
属性获取。
1 2 3 | # 获取数据类型 pixel_dtype = img.dtype print (f "像素数据类型:{pixel_dtype}" ) |
我的示例图片是 uint8
,所以输出的结果是:
像素数据类型:uint8
计算图片大小(总像素数)
通过宽度、高度和通道数,可以计算图片的大小。用到的属性是 size
。
1 2 3 | # 计算总像素数 total_pixels = img.size print (f "图片的总像素数:{total_pixels}" ) |
我的示例图是 1280×1280 的彩色图,每个像素有3个通道。所以上面这段代码在终端会输出:
图片的总像素数:4915200
1280 x 1280 x 3 = 4,915,200
如果需要计算单个通道的大小,只需用图片的 长 x 宽 即可。
到此这篇关于Python OpenCV获取图片的基本参数信息的文章就介绍到这了,更多相关Python获取图片基本参数内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!