OpenCV中图像通道操作的深入讲解

 更新时间:2021年10月14日 09:13:52   作者:半壕春水  
图像处理管道是一组按预定义顺序执行的任务,用于将图像转换为所需的结果或提取一些有趣的特征,下面这篇文章主要给大家介绍了关于OpenCV中图像通道操作的相关资料,需要的朋友可以参考下

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()

从输出结果可以知道:改变通道顺序后,图像显示效果会发生变化

 

 

总结

到此这篇关于OpenCV中图像通道操作的文章就介绍到这了,更多相关OpenCV图像通道操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3中SQLMap安装教程

    python3中SQLMap安装教程

    本文主要介绍了python3中SQLMap安装教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python3.6.8 + pycharm + PyQt5 环境搭建的图文教程

    python3.6.8 + pycharm + PyQt5 环境搭建的图文教程

    这篇文章主要介绍了python3.6.8 + pycharm + PyQt5 环境搭建,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Django上线部署之IIS的配置方法

    Django上线部署之IIS的配置方法

    这篇文章主要介绍了Django上线部署之IIS的配置方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • python爬取王者荣耀全皮肤的简单实现代码

    python爬取王者荣耀全皮肤的简单实现代码

    在本篇文章里小编给大家分享的是一篇关于16行python代码 爬取王者荣耀全皮肤的知识点内容,有兴趣的朋友们学习下。
    2020-01-01
  • PyQT实现多窗口切换

    PyQT实现多窗口切换

    这篇文章主要为大家详细介绍了PyQT实现多窗口切换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python列表去重的二种方法

    python列表去重的二种方法

    这篇文章主要介绍了python列表去重的二种方法,第二种方法无法保持原有顺序,需要的朋友可以参考下
    2014-02-02
  • Tensorflow2.4使用Tuner选择模型最佳超参详解

    Tensorflow2.4使用Tuner选择模型最佳超参详解

    这篇文章主要介绍了Tensorflow2.4使用Tuner选择模型最佳超参详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 关于torch.flatten()函数及x=x.view()函数的理解

    关于torch.flatten()函数及x=x.view()函数的理解

    这篇文章主要介绍了关于torch.flatten()函数及x=x.view()函数的理解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 浅谈keras 的抽象后端(from keras import backend as K)

    浅谈keras 的抽象后端(from keras import backend as K)

    这篇文章主要介绍了浅谈keras 的抽象后端(from keras import backend as K),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python定时关机小脚本

    python定时关机小脚本

    这篇文章主要为大家详细介绍了python定时关机小脚本,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06

最新评论