目录
1. 通道拆分
1.1 cv2.split
1.1.1 语法结构
b,g,r = cv2.split(img[, mv]) #图像拆分为 bgr 通道。
img
:图像数据,nparray 多维数组mv
:指定的分拆通道(可选)b,g,r
:分割成三个单通道图像,分别代表蓝色、绿色和红色通道,并将它们分别赋值给b、g和r
1.1.2 注意事项
1.1.3 代码示例
import cv2
imgfile = "img/lena.jpg"
img1 = cv2.imread(imgfile, flags=1) # flags=1 读取彩色图像(bgr)
# 通道拆分
b,g,r=cv2.split(img1)
# 显示图像
cv2.imshow("b", b)
cv2.imshow("g", g)
cv2.imshow("r", r)
cv2.waitkey(0)
cv2.destroyallwindows()
1.2 numpy切片
1.2.1 代码示例
import cv2
imgfile = "img/lena.jpg"
img1 = cv2.imread(imgfile, flags=1) # flags=1 读取彩色图像(bgr)
# 获取 b 通道
bimg = img1.copy() # 获取 bgr
bimg[:, :, 1] = 0 # g=0
bimg[:, :, 2] = 0 # r=0
# 获取 g 通道
gimg = img1.copy() # 获取 bgr
gimg[:, :, 0] = 0 # b=0
gimg[:, :, 2] = 0 # r=0
# 获取 r 通道
rimg = img1.copy() # 获取 bgr
rimg[:, :, 0] = 0 # b=0
rimg[:, :, 1] = 0 # g=0
# 显示图像
cv2.imshow("b", bimg)
cv2.imshow("g", gimg)
cv2.imshow("r", rimg)
cv2.waitkey(0)
cv2.destroyallwindows() # 释放所有窗口
2. 通道合并
2.1 cv2.merge
2.1.1 语法结构
cv2.merge(mv[, dst]) #bgr 通道合并
mv
:要合并的单通道dst
:通道合并的图像,nparray 多维数组
2.1.2 注意事项
2.1.3 代码示例
import cv2
imgfile = "img/lena.jpg"
img1 = cv2.imread(imgfile, flags=1) # flags=1 读取彩色图像(bgr)
# 通道拆分
b, g, r = cv2.split(img1)
# 通道合并
rgb = cv2.merge([r, g, b])
gbr = cv2.merge([g, b, r])
brg = cv2.merge([b, r, g])
# 显示图像
cv2.imshow("rgb", rgb)
cv2.imshow("gbr", gbr)
cv2.imshow("brg", brg)
cv2.waitkey(0)
cv2.destroyallwindows() # 释放所有窗口
发表评论