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)

显示图像与原图相同。

相关推荐
光与电子KOYUELEC加油奋斗几秒前
Molex莫仕连接器:增强高级驾驶辅助系统,打造更安全的汽车
人工智能·光与电子
__lost2 小时前
MATLAB画出3d的常见复杂有机分子和矿物的分子结构
开发语言·人工智能·matlab·化学·分子结构
每天都要写算法(努力版)2 小时前
【神经网络与深度学习】五折交叉验证(5-Fold Cross-Validation)
人工智能·深度学习·神经网络
郭不耐3 小时前
DeepSeek智能时空数据分析(六):大模型NL2SQL绘制城市之间连线
人工智能·数据分析·时序数据库·数据可视化·deepseek
winfredzhang4 小时前
Deepseek 生成新玩法:从文本到可下载 Word 文档?思路与实践
人工智能·word·deepseek
KY_chenzhao4 小时前
ChatGPT与DeepSeek在科研论文撰写中的整体科研流程与案例解析
人工智能·机器学习·chatgpt·论文·科研·deepseek
不爱吃于先生4 小时前
生成对抗网络(Generative Adversarial Nets,GAN)
人工智能·神经网络·生成对抗网络
cxr8284 小时前
基于Playwright的浏览器自动化MCP服务
人工智能·自动化·大语言模型·mcp
PPIO派欧云5 小时前
PPIO X OWL:一键开启任务自动化的高效革命
运维·人工智能·自动化·github·api·教程·ppio派欧云
奋斗者1号5 小时前
数值数据标准化:机器学习中的关键预处理技术
人工智能·机器学习