【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
热门推荐
项目经理解释错误怎么办
微服务架构下如何通过弱依赖原则保障系统高可用
福报积累:日常行为中的功德指南
汉代陶猪圈:古韵悠长的生活再现
创业项目战略规划怎么写
维生素B6的作用与功效有哪些?
神经性耳鸣,似蝉鸣嗡嗡响,中医针刺法,缓解反复耳鸣有良效!
楼层高度与噪音关系解析
中国自主研发28纳米光刻机:从追赶到突破的里程碑
挽回破裂的友谊,修复心灵的伤痛
美国自由女神像下的碑文:历史的见证与自由的颂歌
清华大学科研团队揭秘月壤固化成形技术,探索月球基地建造
孩子上课总爱讲话怎么办?这份实用指南请收好
对同事表示感谢的话
故乡里的中国 | 开在山顶的咖啡馆
仿制药原研药差异在哪里?防止一致性评价沦为“一次性评价”
平顶山市美食推荐:七道特色小吃带你领略豫南风味
中医调理白头发管用吗
如何分类管理试题数据库
韩翃《寒食》:诗不直接讽刺,而只描摹生活上的特权阶层
如何使用图标和符号提升界面直观性
如何理解和管理财富积累过程中的风险?这些风险如何影响财富增长?
电商都怎么用excel做账
放心托育 方便可及丨0-3岁婴幼儿发展黄金期,托育能带来什么益处?
2024城乡居民医保参保缴费及待遇大盘点
跨越千年的文明溯源—探寻青铜王国大洋洲
文化中国行·诗意节令|芒种:风吹麦成浪 静待稻花香
人际交往中,如何识别最“狡猾”的人,避免深交?
数据库如何查询图书数量
留学生专属公寓怎么申请?申请流程详解