【OpenCV】BGR三色通道的提取与合并--超详细解读
创作时间:
作者:
@小白创作中心
【OpenCV】BGR三色通道的提取与合并--超详细解读
引用
CSDN
1.
https://blog.csdn.net/m0_71212744/article/details/140313889
在OpenCV中,处理图像时经常需要提取或合并图像的RGB(红、绿、蓝)三色通道。OpenCV默认使用BGR(蓝、绿、红)顺序来存储图像的颜色通道,这一点与很多图像处理库(如PIL/Pillow)不同,后者通常使用RGB顺序。不过,OpenCV提供了灵活的方法来处理这种差异,并允许我们轻松地提取和合并颜色通道。
原图展示
提取BGR通道
假设我们有一个名为img的BGR图像(numpy.ndarray类型),我们可以使用切片来提取每个颜色通道,也可以通过cv2.split来分割颜色通道:
import cv2
import numpy as np
# 读取图像
img = cv2.imread('your_image_path.jpg')
# 提取蓝色通道
blue_channel = img[:, :, 0]
# 提取绿色通道
green_channel = img[:, :, 1]
# 提取红色通道
red_channel = img[:, :, 2]
# cv2.split 分割提取
b, g, r = cv2.split(img)
提取蓝色通道:
合并BGR通道
合并通道时,你需要确保你正在合并的数组(或图像)具有正确的形状和类型。在OpenCV中,你可以使用numpy.dstack(深度堆叠)来合并通道,或者如果你在处理BGR图像,并想直接合并它们,可以使用cv2.merge。
使用numpy.dstack合并通道(通用方法)
# 假设你已经有三个单独的通道数组:red, green, blue
# 注意:对于RGB顺序,blue应该是第一个,green是第二个,red是第三个
# 合并通道(这里以BGR为例)
merged_img = np.dstack((blue_channel, green_channel, red_channel))
# 如果需要,将合并后的BGR图像转换为RGB
merged_img_rgb = cv2.cvtColor(merged_img, cv2.COLOR_BGR2RGB)
使用cv2.merge合并BGR通道
# 使用cv2.merge合并BGR通道
channels = [blue_channel, green_channel, red_channel]
merged_img = cv2.merge(channels)
# merged_img现在是一个BGR图像
合并后:
在大多数OpenCV操作中,都可以直接使用BGR图像,但在需要将图像与其他使用RGB的库或工具(如PIL/Pillow)交互时,转换为RGB可能是必要的。
本文原文来自CSDN
热门推荐
腊月二十八的传统大盘点:打糕蒸馍贴花花
怎样降低交感神经的兴奋?五种科学实用的缓解方法
骨密度的检查方法是什么
清华大学王朝教授Angew:低熵惩罚策略提高酯类电解液硝酸锂溶解度
脑梗后遗症患者的水果指南:两类水果需谨慎食用
合肥工业大学计算机考研考情分析
膝关节退化吃什么?9个超实用膝关节保养秘诀
安抚奶嘴的作用
适合2-15岁儿童的趣味数学密码游戏(附资源)
从布雷顿森林体系到美元指数 — 比维基百科更详细的美元指数科普
红外测温仪维护和校准指南:保障温度测量的准确性
降职调薪是否违反劳基法?律师解析合法性与应对方法
真正的武侠,够精彩
红砖12墙一平方多少砖
手臂疼痛怎么缓解
以七年级组为例,谈谈怎样召开教学质量分析会
喝酒后心跳加速是怎么了?原因与预防全解析
6种工业机器人落地应用案例合集,不容错过
科普 | 如何选择风电场场址?
上海试点饮料“分级”,霸王茶姬、奈雪的茶、CHALI等品牌们有话说…
国家卫健委发布高血压营养和运动指导原则(2024年版)
尼古丁替代疗法在戒烟中的应用与效果分析
小清新色调的摄影与调色技巧
什么是低氧血症的典型表现
做自己的避风港:女性的独立与自爱
全屋整装和全屋定制的区别是什么?全屋整装和自己装的哪个好一点?
墨卡托投影法
薪酬计算系统中常见的错误有哪些,如何避免?
狗和人胶配方20分钟:简便快速制作狗狗健康膳食的详细步骤与注意事项
马可波罗与东西文化碰撞:传奇探险家视角下的东方世界