如何使用Python在OpenCV中访问图像属性?
在 OpenCV 中,图像是一个 NumPy 数组。我们可以使用numpy数组的属性来访问图像属性。我们访问以下输入图像的图像属性 img :
- 图像类型 - 图像的数据结构。OpenCV中的图像是numpy.ndarray。我们可以将其访问为 type(img) 。
-
图像形状 - 它是以 [H, W, C] 格式表示的形状,其中 H,W 和 C 分别是图像的 高度,宽度和通道数 。我们可以将其访问为 img.shape 。
-
图像大小 - 它是图像中像素的总数。它也是数组中元素的总数。我们可以将其访问为 img.size 。
-
数据类型 - 它是图像数组元素的dtype。我们可以将其访问为 img.dtype 。
-
维数 - 图像的维数。彩色图像具有 3个维度(高度,宽度和通道) ,而灰度图像具有 2个维度(仅高度和宽度) 。我们可以将其访问为 img.ndim 。
-
像素值 - 像素值是范围在0和255之间的无符号整数。我们可以直接访问这些值为 print(img) 。
让我们看一些访问图像属性的Python程序。
输入图像
我们将在以下示例中使用此图像作为输入文件。
例1
在此程序中,我们将访问给定彩色图像的图像属性。
import cv2
#读取输入图像
img=cv2.imread('cat.jpg')
#图像属性
print("类型:",type(img))
print("图像形状:",img.shape)
print('像素总数:',img.size)
print("图像数据类型:",img.dtype)
#print("Pixel Values:\n", img)
print("维度:",img.ndim)
输出
当您运行此程序时,它将产生以下输出 −
类型:<class 'numpy.ndarray'="">
图像形状:(700, 700, 3)
像素总数:1470000
图像数据类型:uint8
维度:3
让我们看另一个例子。
例2
在此程序中,我们将访问灰度图像的图像属性。
import cv2
#读取输入图像
img=cv2.imread('grayimage.jpg')
#图像属性
print("类型:",type(img))
print("图像形状:",img.shape)
print('像素总数:',img.size)
print("图像数据类型:",img.dtype)
#print("Pixel Values:\n", img)
print("维数:",img.ndim)
import cv2
# 读取输入图像
img = cv2.imread('cat.jpg', 0)
# 图像属性
print("类型:",type(img))
print("图像大小:", img.shape)
print('像素总数:', img.size)
print("图像数据类型:", img.dtype)
print("像素值:\n", img)
print("维数:", img.ndim)
输出
当运行上述python程序时,它将产生以下输出−
类型: <class 'numpy.ndarray'>
图像大小: (700, 700)
像素总数: 490000
图像数据类型: uint8
像素值:
[[ 92 92 92 ... 90 90 90]
[ 92 92 92 ... 90 90 90]
[ 92 92 92 ... 90 90 90]
...
[125 125 125 ... 122 122 121]
[126 126 126 ... 122 122 122]
[126 126 126 ... 123 123 122]]
维数: 2