在图像处理过程中,有时会根据需要对通道进行拆分和合并。在OpenCV中提供了split()和merge()函数。下面对这两个函数进行介绍。
- split()拆分函数
Split()函数可以拆分图像的通道,例如BGR图像的三个通道,一般常见调用格式如下:
b,g,r=cv2.split(img)
其中:
b,g,r分别是B通道、G通道、R通道的图像信息。
img是要拆分的图像。
【例】编写程序,对图像进行拆分。
cv.imshow("b",b)#显示b通道的图像信息
cv.imshow("g",g)#显示g通道的图像信息
cv.imshow("r",r)#显示r通道的图像信息
cv.imshow("image",image)#显示原图像信息
cv.waitKey()#等待按键时间,默认为0,即无限等待
cv.destroyAllWindows()#释放窗口
程序运行结果如图所示:
a)原始图像 B)B通道图像
C)G通道图像 D)R通道图像
2.2.2merge()合并函数
通道合并是通道拆分的逆过程,可以将三个通道的灰度图像合并为一张彩色图像,OpenCV中提供了merge()函数来进行图像的合并,基本格式为;
Imagebgr=cv2.merge([b,g,r])
其中:
imagebgr是合并后的图像;
B,g,r分别是B、G、R通道的图像信息。
【例】编写程序,演示图像合并的过程。
import cv2 #导入模块
image=cv2.imread("D:/pycharm/project/project_1/My_OpenCv_python/1.1.jpg") #读取图像
b,g,r=cv2.split(image) #拆分图像
imagebgr=cv2.merge([b,g,r]) #合并图像
cv2.imshow("image",image) #显示原始图像
cv2.imshow('imagebgr', imagebgr) #显示合并后的图像
cv2.waitKey() #等待按键
cv2.destroyAllWindows() #释放窗口
程序运行结果如下;
a)原始图像 b)拆分合并后的图像
-
- 图像属性的读取
在进行图像处理时经常需要获取图像的大小、类型等属性信息 。下面介绍几个常见的属性:
- shape:表示图像的大小。如果是彩色图像,则返回包含行数、列数和通道数的数组。如果是二值图像和灰度图像,则返回包含行数、列数的数组。
- size:表示返回的图像的像素的数目。
- dtype:表示返回的图像的数据类型。
【例】编写程序,观察图像的属性值。
import cv2#导入模块
image=cv2.imread("D:/pycharm/project/project_1/My_OpenCv_python/kenanandxiaolan.png")#读取图像
print("image.dtype",image.dtype)#输出图像的类型属性
print("image.shape",image.shape)#输出图像的大小属性
print("image.size",image.size) #输出图像的像素数目属性
程序运行的结果如下:
image.dtype uint8
image.shape (1080, 1920, 3)
image.size 6220800