【OpenCV】BGR三色通道的提取与合并--超详细解读
创作时间:
作者:
@小白创作中心
【OpenCV】BGR三色通道的提取与合并--超详细解读
引用
CSDN
1.
https://m.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可能是必要的。
热门推荐
鸡蛋,到底吃多少更健康?
猴痘通过“飞沫传播”的能力强吗?Ⅰb变异株的突出特征是什么?预防的关键是什么?
《小王子》:一部跨越年龄界限的文学经典
股市风向标 | 沪港AH股溢价指数走势分析
中医方剂,最常用的五种疏肝方
如何探索多元化的投资渠道
中国游客日本海上漂流36小时获救!亲属发声:身上被晒伤 没吃没喝仅用海水润嘴
月饼有什么馅的?从古早味到新奇风,哪款能征服你的味蕾?
博物馆展柜玻璃的选择:低反射玻璃的优势与应用
位置无关码PIC详解:原理、动态链接库、代码重定位
合肥天使儿童医院:全面指南,携手应对自闭症
【腊八食养】今天腊八,你喝腊八粥了吗?还有哪些食物能暖身驱寒?
巴塞罗那vs巴列卡诺:一场西甲豪门与中游球队的较量
古代成年礼仪:冠礼与笄礼的意义及年龄界定
【原】灰指甲的治疗,看这一篇就够了!(附中外文献)
佛教术语“我见”详解
邀月和燕南天:绝代双骄中的绝世人物
探索悲情人物:解析其情感深度与艺术价值
丽江必去的9个景点,全部去过才能说真正去过丽江,你去过几个?
小苏打怎样美白牙齿?牙黄友友点进看
在体制内想要提拔晋升,有什么建议
圆的周长与面积计算方法及其生活应用
家用血压计选购、使用与保养全攻略
什么是刺五加?刺五加的功效与作用全解析
钩针编织凤凰包包教程:从材料准备到成品展示
电脑文档管理怎么分类
喝咖啡与不喝咖啡,身体三个差距很明显!健康喝咖啡记住这几点!
痛风尿酸下不去?教你正确喝水运动控制尿酸!
大同十大名面:刀削面、压豆面、莜面等特色面食
郴州三日游路线,不容错过的郴州旅行计划!