cv2.split函数与cv2.merge函数

split函数用于图像BGR通道的分离

merge函数用于可将分开的图像通道合并到一起

1.split函数的使用

这是原图,我们使用split函数对其三个通道进行分离。

注意:split函数分离通道的顺序是B、G、R。

以下方法是将三个通道的值都设置为与某一个通道相同。

python 复制代码
import numpy as np
import cv2  # 导入opencv模块

image = cv2.imread("test.jpg")  # 读取要处理的图片
B, G, R = cv2.split(image)  # 分离出图片的B,R,G颜色通道
cv2.imshow("RED COMPONENT FOR ALL THREE CHANNELS", R)  # 显示三通道的值都为R值时的图片
cv2.imshow("GREEN COMPONENT FOR ALL THREE CHANNELS", G)  # 显示三通道的值都为G值时的图片
cv2.imshow("BLUE COMPONENT FOR ALL THREE CHANNELS", B)  # 显示三通道的值都为B值时的图片
cv2.waitKey(0)

B通道

G通道

R通道

如果图中某一颜色较强,这种方法可以用于区分出图中B、G、R三原色的强弱。

如果想提取单一通道,其他通道值设为0,使用以下代码:

python 复制代码
import numpy as np
import cv2  # 导入opencv模块

image = cv2.imread("test.jpg")  # 读取要处理的图片
B, G, R = cv2.split(image)  # 分离出图片的B,R,G颜色通道
zeros = np.zeros(image.shape[:2], dtype="uint8")  # 创建与image相同大小的零矩阵
cv2.imshow("DISPLAY BLUE COMPONENT", cv2.merge([B, zeros, zeros]))  # 显示(B,0,0)图像
cv2.imshow("DISPLAY GREEN COMPONENT", cv2.merge([zeros, G, zeros]))  # 显示(0,G,0)图像
cv2.imshow("DISPLAY RED COMPONENT", cv2.merge([zeros, zeros, R]))  # 显示(0,0,R)图像
cv2.waitKey(0)

代码中使用了image.shape[:2],理解image.shape[:2]可参考下文。理解image.shape[:2]与image.shape[:3]https://blog.csdn.net/Mr_LanGX/article/details/120275615

例:h,w = img.shape[:2] 获取彩色图片的高、宽,并且赋值给h和w;如果是h,w,v = img.shape[:3] 获取彩色图片的高、宽、通道,并赋值给h w v

运行代码:

B通道

G通道

R通道

2.merge函数的使用

merge函数将三个分离的通道合并。

python 复制代码
import numpy as np
import cv2  # 导入opencv模块

image = cv2.imread("test.jpg")  # 读取要处理的图片
B, G, R = cv2.split(image)  # 分离出图片的B,R,G颜色通道
cv2.imshow("MERGE RED,GREEN AND BLUE CHANNELS", cv2.merge([B, G, R]))  # 显示(B,G,R)图像
cv2.waitKey(0)

显示图像与原图相同。

相关推荐
算家计算25 分钟前
字节开源代码模型——Seed-Coder 本地部署教程,模型自驱动数据筛选,让每行代码都精准落位!
人工智能·开源
伪_装32 分钟前
大语言模型(LLM)面试问题集
人工智能·语言模型·自然语言处理
gs8014039 分钟前
Tavily 技术详解:为大模型提供实时搜索增强的利器
人工智能·rag
music&movie1 小时前
算法工程师认知水平要求总结
人工智能·算法
量子位2 小时前
苹果炮轰推理模型全是假思考!4 个游戏戳破神话,o3/DeepSeek 高难度全崩溃
人工智能·deepseek
黑鹿0222 小时前
机器学习基础(四) 决策树
人工智能·决策树·机器学习
Fxrain2 小时前
[深度学习]搭建开发平台及Tensor基础
人工智能·深度学习
szxinmai主板定制专家2 小时前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发
laocui12 小时前
Σ∆ 数字滤波
人工智能·算法
蜉蝣之翼❉2 小时前
opencv如何在仿射变换后保留完整图像内容并自动裁剪
opencv·计算机视觉