如何使用Python在OpenCV中访问图像属性?

如何使用Python在OpenCV中访问图像属性?

OpenCV 中,图像是一个 NumPy 数组。我们可以使用numpy数组的属性来访问图像属性。我们访问以下输入图像的图像属性 img

  • 图像类型 - 图像的数据结构。OpenCV中的图像是numpy.ndarray。我们可以将其访问为 type(img)

  • 图像形状 - 它是以 [H, W, C] 格式表示的形状,其中 H,WC 分别是图像的 高度,宽度和通道数 。我们可以将其访问为 img.shape

  • 图像大小 - 它是图像中像素的总数。它也是数组中元素的总数。我们可以将其访问为 img.size

  • 数据类型 - 它是图像数组元素的dtype。我们可以将其访问为 img.dtype

  • 维数 - 图像的维数。彩色图像具有 3个维度(高度,宽度和通道) ,而灰度图像具有 2个维度(仅高度和宽度) 。我们可以将其访问为 img.ndim

  • 像素值 - 像素值是范围在0和255之间的无符号整数。我们可以直接访问这些值为 print(img)

让我们看一些访问图像属性的Python程序。

输入图像

我们将在以下示例中使用此图像作为输入文件。

如何使用Python在OpenCV中访问图像属性?

例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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程