【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
热门推荐
钓鲫鱼应该用什么鱼钩,几号鱼钩?大家怎么选择?
父母为已婚子女购房出资,子女离婚时如何证明是借款?
被诈骗的钱多久返还?中国如何打击诈骗犯罪?
一周前瞻:美国CPI、PPI数据揭晓,美股走势再迎考验
“字谜竞猜:文化智慧传承中的趣味交流”
打生长激素的后遗症
硬件开发兼职求职指南:五大渠道全方位解析
布加综合征病例分析报告
甲状腺疾病高发,这些检测指标你必须了解!
15年、20年、30年……社保缴纳年限不同对到手退休金影响有多大?
阳台不能放洗衣机吗 风水学角度;阳台风水怎么布置招财
纳豆激酶制剂及其制备方法和应用与流程
笔记本电脑键盘网格怎么设置?如何调整键盘布局以提高打字效率?
女性是非遗传承的重要力量
解读中国古典神话:火正祝融——火焰之灵的辉煌篇章与无尽恩泽
美媒票选巅峰时期最强的10位球员:约基奇超大梦排第七,詹皇仅第四
我国汽车产业技术现状及未来发展趋势
基础代谢与摄入热量:揭秘健康饮食的秘密
如何获取黄金行情的最新资讯?这些资讯对投资有何指导作用?
什么会让头发变白?头发白了还能变黑吗?一文了解→
在职博士的学术资源利用:如何高效获取文献与数据?
手机内存满了怎么办?一文详解内存清理实用技巧
抛物线顶点坐标公式解读:从此告别难题!
如何科学栽培植物,从选土播种到收获全攻略?
轻松开启玻璃瓶塑料瓶盖的妙招
娃娃脸:青春永驻的魅力与挑战
30岁就长了老年斑?建议多吃这3类食物!
高端人才程序员:定义、现状及未来发展趋势
中午锻炼:有益还是有害?揭秘午间运动的利与弊
一天中,最佳的锻炼时间是在几点?早上好还是晚上好?出乎意料