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)
示例
以下代码将前100×100像素的颜色值更改为黑色。 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)
计算得出的图像将如下所示−