OpenCV Python - 图像属性
OpenCV 读取 NumPy 数组中的图像数据。 此 ndarray 对象的 shape() 方法显示图像属性,例如尺寸和通道。
shape() 方法的使用命令如下 −
>>> img = cv.imread("OpenCV_Logo.png", 1) >>> img.shape (222, 180, 3)
在上面的命令中 −
- 前两项 shape[0] 和 shape[1] 表示图像的宽度和高度。
- Shape[2] 代表通道数。
- 3 表示图像具有红绿蓝 (RGB) 通道。
类似地,size 属性返回图像的大小。 图像大小的命令如下 −
>>> img.size 119880
ndarray 中的每个元素代表一个图像像素。
在下面提到的命令的帮助下,我们可以访问和操作任何像素的值。
>>> p=img[50,50] >>> p array([ 1, 1, 255], dtype=uint8)
示例
以下代码将前 100X100 像素的颜色值更改为黑色。 imshow() 函数可以验证结果。
>>> for i in range(100): for j in range(100): img[i,j]=[0,0,0]
输出
可以使用split() 函数将图像通道拆分为单独的平面。 可以使用 merge() 函数合并通道。
split() 函数返回一个多通道数组。
我们可以使用下面的命令来分割图像通道 −
>>> img = cv.imread("OpenCV_Logo.png", 1) >>> b,g,r = cv.split(img)
您现在可以对每个平面进行操作。
假设我们把蓝色通道的所有像素都设置为0,代码会如下 −
>>> img[:, :, 0]=0 >>> cv.imshow("image", img)
The resultant image will be shown as below −