1 通道提取与合并

在数字图像处理中,图像通道是指一个图像中的颜色信息被分离为不同的颜色分量。常见的图像通道包括RGB通道、灰度通道、HSV通道等。

RGB通道是指将图像分离为红色、绿色和蓝色三个颜色通道,每个通道表示相应颜色的亮度。这种方式是最常见的方式,它对于彩色图像的处理非常重要。

灰度通道是指将图像中的颜色信息转换为灰度亮度值,用单个通道表示整幅图像。这种方式比较适用于黑白图像或者在彩色图像中只需要考虑图像的亮度信息时。

HSV通道是指将图像中的颜色信息分离为色调(H)、饱和度(S)和亮度(V)三个通道。这种方式在对颜色变化的控制上比RGB更加直观,更适用于图像处理中的颜色调整。

在图像处理中,通常使用不同的通道来处理和操作图像。例如,使用灰度通道可以使图像变得更容易处理,因为只需要考虑单个通道,而使用RGB通道可以使图像更容易在彩色显示设备上显示。在处理和分析图像时,选择适当的通道和通道组合是非常重要的,可以帮助我们更好地理解和控制图像。

1 数组形式

可以以数组的形式提取指定通道数据,也可以使用cv2的split提取指定通道数据。
通过索引的方式,可以直接将各个通道从图像内提取出来。通道的信息在每行数组的最后一列。

# 以下代码使用数组的形式对通道进行处理
import cv2
lena = cv2.imread("lenacolor.png")
cv2.imshow("lena1", lena)
b = lena[:, :, 0]
g = lena[:, :, 1]
r = lena[:, :, 2]
cv2.imshow("b", b)
cv2.imshow("g", g)
cv2.imshow("r", r)

以上代码可以分别提取出BGR三个通道的数据并作展示。需注意的是cv2的通道顺序不是我们所熟悉的RGB。

lena[:, :, 0] = 0
cv2.imshow("lenab0", lena)
lena[:, :, 1] = 0
cv2.imshow("lenab0g0", lena)
cv2.waitKey()
cv2.destroyAllWindows()

以上代码可以实现对某一通道批量赋值,对某一通道的值赋值为0,即在某种程度上删除了这一通道。处理后的图片将发生色度上的变化。

2 split与merge形式

函数cv2.split()能够拆分图像的通道。例如,可以使用如下语句拆分彩色BGR图像img,得到B通道图像b、G通道图像g和R通道图像r。

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

以上是使用split提取通道的两种方法。
对BGR通道处理后,为了展示图形,还需要将三个通道合并。

bgr = cv2.merge([b, g, r])
rgb = cv2.merge([r, g, b])
cv2.imshow("real", bgr)
cv2.imshow("fake", rgb)

正常情况下,我们仍需按照BGR的顺序将图进行组合。但如果我们不按此顺序或引入了其他波段的数据,就产生了假图(遥感领域学生对此概念会更加熟悉)。

02 OpenCV图像通道处理相关推荐

  1. OpenCV 图像通道的拆分与合并

    有时需要在B, G, R通道图像上单独工作.在这种情况下,需要将BGR图像分割为单个通道,或者在其它情况下,可能㤇将这些单独的通道合并到BGR图像. 通道拆分 import matplotlib.py ...

  2. opencv图像通道 8UC1?

    转载自博主@马卫飞 https://blog.csdn.net/maweifei/article/details/51221259 CV_<bit_depth>(S|U|F)C<nu ...

  3. opencv-python 9.4 拆分及合并图像通道

    opencv-python 教程 https://www.cnblogs.com/Undo-self-blog/p/8424220.html 9.4 拆分及合并图像通道 有时我们需要对 BGR 三个通 ...

  4. 【OpenCV 例程200篇】12. 图像通道的合并(cv2.merge)

    [OpenCV 例程200篇]12. 图像通道的合并(cv2.merge) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更 ...

  5. 【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)

    [OpenCV 例程200篇]11. 图像通道的拆分(cv2.split) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更 ...

  6. 使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI

    使用Python,OpenCV获取.更改像素,修改图像通道,剪裁ROI 1. 效果图 2. 源码 参考 这篇博客将介绍使用Python,OpenCV获取.更改像素,修改图像通道,截取图像感兴趣ROI: ...

  7. OpenCV分离图像通道

    opencv的imread函数读取的灰度图是单通道的. opencv分离图像通道: 源码: Mat img = imread("D:/1.jpg",1);Mat imgR,imgG ...

  8. opencv 三通道图像转四通道透明图像

    添加透明通道. 使用split(),merge(),合成图像通道. 把3通道的rgb转为4通道,设置alpha=0.并保存图像. #include <opencv2/opencv.hpp> ...

  9. Opencv 图像处理:图像通道、直方图与色彩空间

    本文已收录于Opencv系列专栏: 深入浅出OpenCV ,专栏旨在详解Python版本的Opencv,为计算机视觉的开发与研究打下坚实基础.免费订阅,持续更新. 文章目录 1.图像通道 通道分离 通 ...

最新文章

  1. 使用Python,Opencv进行二维直方图的计算及绘制
  2. Redis 延时任务(高手养成篇)
  3. ANT集成SVNANT访问SVN(Subversion)
  4. Python按行读取文件、写文件
  5. oauth2_带有Spring Security的OAuth 2.0快速指南
  6. 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
  7. 计算机在课堂中的应用论文,任务教学法在计算机教学中的应用论文
  8. pointnet与pointnet++
  9. matlab生产计划问题,用MATLAB解决综合生产计划编制过程中的优化问题
  10. python size(0)_对x.view(x.size(0), -1)的一些理解
  11. ubuntu下创建定时任务的两种方式及常见问题解决方案
  12. 英文如何区分小括号和花括号
  13. C++ 类的隐式转换之基本数据类型
  14. java基础学习(3)
  15. 编译原理(龙书):第五章部分题目参考答案
  16. 西门子plc200 c语言转换,西门子S7-200 系列PLC量程转换及编程方法
  17. 加州房价篇 (三) : 模型的训练,评估和房价的预测
  18. 基于Python实现的学生信息管理系统
  19. webstorm提示TypeError: this.cliEngine is not a constructor
  20. 我的世界java版1.7.10咋刷物品,我的世界1.7.10刷物品mod

热门文章

  1. 如何组建winzone团队?
  2. 亚马逊云计算机视觉服务,亚马逊云科技宣布Amazon Lookout for Vision正式可用
  3. SSM电竞陪玩服务平台(包安装调试)
  4. 【N1BOOK】[第一章 web入门] wp
  5. 抢夺英特尔Mac订单 AMD拦路虎暂不成气候
  6. C语言软件怎么运行C51文件,keil c51中C程序的启动过程
  7. linux限制目录访问权限,linux用户的访问权限限制的方法都有哪些
  8. LabVIEW前面板占满整个屏幕
  9. 摄影测量手动提取立体像对同名点像素,相对定向解算,特征点提取,影像匹配同名点的python实现
  10. Linux UPS配置详解 (山特SANTAK TGBOX-850 )