获取图像的属性
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
#绘制一个全黑的图像
img = np.zeros((256,256,3),np.uint8) #创建图像时要指定类型为uint8
plt.imshow(img[:,:,::-1])
plt.show()
#等待用户按任意键推出
cv.waitKey(0)
cv.destroyAllWindows()
a=img[100,100] #这里应该使用方括号 [] 来索引图像像素值,而不是使用圆括号
print(a) #[0 0 0]
'''在获取图像的形状、大小和数据类型时,需要使用函数 而不是方法()。 所以不需要加()'''
b=img.shape
print(b) #(256, 256, 3)
#获取图像大小
c=img.size
print(c) #196608 = 256*256*3
#获取数据类型
d = img.dtype
print(d) #uint8
图像通道拆分
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("lena.png")
cv2.imshow("img1",img)
cv2.waitKey(0)
'''在拆分通道部分,使用 cv2.split() 函数将图像拆分成 B、G、R 三个通道,
每个通道都是一个独立的灰度图像。注意 cv2.split() 返回的是列表,因此需要使用多个变量接收。'''
#拆分通道
b,g,r = cv2.split(img)
# 显示蓝色通道图像
cv2.imshow("Blue Channel", b)
cv2.waitKey(0)
# 显示绿色通道图像
cv2.imshow("Green Channel", g)
cv2.waitKey(0)
# 显示红色通道图像
cv2.imshow("Red Channel", r)
cv2.waitKey(0)
'''在合并通道部分,使用 cv2.merge() 函数将三个通道重新合并为一张彩色图像。
合并时需要将通道作为列表传递给 cv2.merge() 函数。'''
#合并通道
img_merge=cv2.merge([b,g,r])
cv2.imshow('img2',img_merge)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果展示
原图:
拆分:
合并: