OpenCV的图像通道操作

2023-05-16

1.基本介绍

在OpenCV中,图像通道是按照 B 通道→G 通道→R 通道的顺序存储的。在图像处理过程中,可以根据需要对通道进行拆分和合并。

2.通道拆分

对于RGB图像,可以索引的方式或者函数的方式分别拆分出其RGB通道。

b = img[ : , : , 0 ]
g = img[ : , : , 1 ]
r = img[ : , : , 2 ]

2.1通过索引拆分

import cv2
lena=cv2.imread("lena_color.jpg")
cv2.imshow("lena彩色原图",lena)
b=lena[:,:,0]       # 获取图像的B通道
g=lena[:,:,1]       # 获取图像的G通道
r=lena[:,:,2]       # 获取图像的R通道
cv2.imshow("B通道",b)
cv2.imshow("G通道",g)
cv2.imshow("R通道",r)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2.2通过函数拆分

函数 cv2.split() 能够拆分彩色图像的通道。
语句b,g,r=cv2.split(img)可以获得彩色图像的B 通道图像 b、G 通道图像 g 和 R 通道图像 r。与下面语句是等价的

b=cv2.split(a)[0]
g=cv2.split(a)[1]
r=cv2.split(a)[2]

如下程序的运行结果与通过索引拆分是一样的

import cv2
lena=cv2.imread("lena_color.jpg")
cv2.imshow("lena彩色原图",lena)
b,g,r=cv2.split(lena)
cv2.imshow("B通道",b)
cv2.imshow("G通道",g)
cv2.imshow("R通道",r)
cv2.waitKey()
cv2.destroyAllWindows()

3.通道合并

  通道合并是通道拆分的逆过程,可以通过合并通道将三个通道的灰度图像合成一幅彩色图像。函数 cv2.merge()可以实现图像通道的合并,例如有 B 通道图像 b、G 通道图像 g 和 R 通道图像 r,使用函数 cv2.merge()可以将这三个通道合并为一幅 BGR 的三通道彩色图像。实现的语句为:bgr=cv2.merge([b,g,r])

import cv2
lena=cv2.imread("lena_color.jpg")
b,g,r=cv2.split(lena)           # 对lena彩色原图进行通道拆分
bgr=cv2.merge([b,g,r])          # 对通道按照BGR的顺序合并生成图像bgr
brg=cv2.merge([b,r,g])          # 对通道按照BRG的顺序合并生成图像brg
rgb=cv2.merge([r,g,b])          # 对通道按照RGB的顺序合并生成图像rgb
cv2.imshow("bgr",bgr)
cv2.imshow("brg",brg)
cv2.imshow("rgb",rgb)
cv2.waitKey()
cv2.destroyAllWindows()

从输出结果可以知道:改变通道顺序后,图像显示效果会发生变化在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV的图像通道操作 的相关文章

  • web的一些介绍

    文章目录 前言一 什么是Web xff1f 二 基本Web服务结构软件编程体系C S xff08 Client Server xff09 软件体系结构B S xff08 Brower Server xff09 软件体系结构C S结构与B S
  • .net技术第一章

    文章目录 NETC C Sharp 的特点C 的应用范围 NET Framework1 2 创建简单的C 程序结构和书写规则类型的声明和使用类型的声明和使用命名空间使用方法命名空间举例 注释Main方法命令行参数Main返回值 控制台输入和
  • .net----委托和事件

    委托和事件 委托声明实例化调用将类型安全的函数指针 方法 作为其他方法的参数进行传递 xff0c 从而实现函数回调方法委托 xff1a 匿名方法委托 多播委托委托 xff1a 委托的异步调用委托 xff1a 委托的兼容性 事件事件实际上是委
  • .net-----语言集成查询LINQ

    语言集成查询LINQ 前言相关语言要素初始值设定项匿名类型相关语言要素Lambda表达式扩展方法 LINQ的概念和基本操作集成语言查询LINQLINQ查询操作 标准查询运算符数据排序数据筛选数据投影数据分组联接运算数据分区限定运算聚合运算集
  • .net-----Windows 窗体应用程序包括控件,对话框,多重窗体,绘制图形,菜单和工具栏

    目录 前言Windows窗体应用程序概述 xff1b 窗体和大部分控件常用的事件创建Windows窗体应用程序使用Visual Studio集成开发环境实现Hello World程序 使用常用Windows窗体控件 xff1b Label
  • python字符串内建函数

    在八进制数前面显示零 0 xff0c 在十六进制前面显示 0x 或者 0X 取决于用的是 x 还是 X 0 显示的数字前面填充 0 而不是默认的空格 输出一个单一的 var 映射变量 字典参数 m n m 是显示的最小总宽度 n 是小数点后
  • 物理层-计算机网络速成

    物理层 1 物理层的基本概念1 1四大特性机械特性电气特性功能特性过程特性 1 2两种信号1 3 调制编码调制编码区别 1 4 传输介质双绞线光纤同轴电缆 xff1a 淘汰 xff0c 有线电话无线 xff1a IEEE802 11 1 5
  • 考研第一天,汤家凤基础班,连续与极限复习笔记

    函数连续极限 性质保号性证明极值点 xff1a 夹逼准则二项式展开根号下 xff0c 大于一 xff0c 小于一的讨论直接放缩求和分子分母齐次 xff0c 且分母大一次 xff0c 用积分 单调有界存在极限几个重要的切线放缩证明有界 xff
  • Ubuntu双系统安装教程

    安装Ubuntu双系统 1 下载Ubuntu镜像源文件2 下载制作U盘启动工具3 磁盘分区4 安装Ubuntu 1 下载Ubuntu镜像源文件 18 04 6链接 xff1a http mirrors aliyun com ubuntu r
  • Arduino造轮子—红外遥控器

    今天练习的程序是实现红外遥控器的控制 xff0c 首先 xff0c 通过太极创客的视频来看看最终的实现结果 xff1a 太极创客 零基础入门学用Arduino 第三部分 智能应用篇 合辑 本次程序例程来自太极创客官网 xff0c 此平台的A
  • 嵌入式软件刷题日记【第一天】

    1 什么是同步IO xff0c 什么是异步IO 同步就是在发出一个功能调用时 xff0c 会一直阻塞等地结果 异步就是在发出一个功能调用时 xff0c 无需阻塞等待结果 xff0c 当结果产生一般通过状态 xff0c 回调等方法来通知调用者
  • 嵌入式软件刷题笔记【第四天】

    1 头文件的两种包含形式的区别 xff1f lt gt 尖括号形式表示引用系统编译器类库路径里面的头文件 34 34 双引号则表示引用当前文件工作目录相对路径里面的头文件 2 STM32 中断是怎么进入到中断服务程序的 xff1f STM3
  • 嵌入式软件刷题【第五天】

    1 在请求分页式存储管理中 xff0c 假设一次内存访问时间为 100ns xff0c 一次快表 xff08 TLB xff09 访问时间为 20ns xff0c 地址转换计算时的快表命中率为 80 xff0c 请计算平均有效内存访问时间为
  • OSlab

    OSlab B站链接 xff1a https www bilibili com video BV1kU4y1m7QW share source 61 copy web Linux环境实践作业 在Windows Terminal的Ubuntu
  • Linux操作命令学习笔记

    Linux操作命令学习笔记 常用操作命令 xff08 以下均严格区分大小写 xff09 查看文件以及文件夹 xff1a ls命令 ls a xff08 显示隐含文件 xff0c 如以 开头的文件 ls l 长格式输出 xff0c 和ll命令
  • JAVA与C、C++比较

    浅比较Java与C C 43 43 1 语言类型 C C 43 43 是Compiled Language xff0c 而Java兼顾了Compiled Language和Interpreted Language的特点 C C 43 43
  • python正则表达式详解

    正则表达式是一个很强大的字符串处理工具 xff0c 几乎任何关于字符串的操作都可以使用正则表达式来完成 xff0c 作为一个爬虫工作者 xff0c 每天和字符串打交道 xff0c 正则表达式更是不可或缺的技能 xff0c 正则表达式的在不同
  • Java架构师发展路线

    Java架构师发展路线 初学者学习路线 Java基础 Java MySQL JDBC JavaWeb 重点 xff1a Servlet Filter Listener Cookie amp Session 常用框架 SSM框架 Spring
  • uml图 类图的表示方式 类图中类的六种关系详解 泛化关系,实现关系,依赖关系,关联关系,聚合关系,组合关系

    类图是UML图中的一种 xff0c 我们先来了解它的定义 xff1a 类图 Class Diagram 使用出现在系统中的不同类来描述系统的静态结构 xff0c 用来描述不同的类以及它们之间的关系 目录 UML类图包含元素 xff1a 单个
  • C++语言STL库常用函数

    目录 目录 万能头文件 include 1 memset xff08 xff09 批量初始化函数 2 next prev permutation全排列函数 3 unique去重函数 4 reverse 函数 5 fill 函数 6 lowe

随机推荐