OpenCV_PY_1.7拆分、合并颜色通道

一、拆分颜色通道

1、通过数组索引拆分通道

前提需知

OpenCV中BGR图像是一个三维数组,从0开始,第0层是B(蓝),第1层是G(绿),第2层是R(红)

测试代码

import cv2
# 读图像,将尺寸减小为原来的1/2
img=cv2.imread('img.png',cv2.IMREAD_REDUCED_COLOR_2)

cv2.imshow('img',img)  # 显示原图
b=img[:,:,0]  # 调用img图像的b通道
g=img[:,:,1]
r=img[:,:,2]
cv2.imshow('img_B',b)  # 显示b通道图片
cv2.imshow('img_G',g)
cv2.imshow('img_R',r)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果

2、使用cv2.split()函数拆分通道

相关代码

b,g,r=cv2.split(img)

参数说明

img:要拆分颜色通道的图片

返回值:按BGR顺序返回通道

测试代码

import cv2
img=cv2.imread('img.png',cv2.IMREAD_REDUCED_COLOR_2)  # 读图像,尺寸减小为1/2
cv2.imshow('Rem',img)
b,g,r=cv2.split(img)  # 按通道拆分图像
cv2.imshow('Rem_B',b)
cv2.imshow('Rem_G',g)
cv2.imshow('Rem_R',r)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 效率不如数组索引

运行结果

总结

cv2.split()函数拆分通道效率不如数组索引,所以在处理较大图像时优先考虑数组索引 

二、合并颜色通道

相关代码

cv2.merge([b,g,r]

参数说明

b,g,r是三个单通道图像,依次将它们作为B,G,R通道的图像合并

测试代码

# cv2.merge()函数可将3通道图像合并

import cv2
img=cv2.imread('img.png',cv2.IMREAD_REDUCED_COLOR_2)  # 读图像,尺寸减小为1/2
cv2.imshow('Rem',img)
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]
# 按不同顺序合并图像
bgr=cv2.merge([b,g,r])
rgb=cv2.merge([r,g,b])
# 显示合并的图像
cv2.imshow('Rem_bgr',bgr)
cv2.imshow('Rem_rgb',rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果

OpenCV学习笔记,'杜苏芮'要来了

2023/07/27/7:47

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值