OpenCv对于图片的RGB三色通道的提取与合并

这篇具有很好参考价值的文章主要介绍了OpenCv对于图片的RGB三色通道的提取与合并。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、使用OpenCV提取RGB颜色通道

三、合并RGB颜色通道


一、前言

当涉及到图像处理计算机视觉时,颜色通道(RGB通道)的提取是一个重要的步骤。而OpenCV是一个强大的计算机视觉库,它提供了许多功能,包括图像处理。

什么是RGB颜色通道?

在数字图像中,颜色通道指的是构成图像的基本颜色成分。RGB通道代表红色(R)、绿色(G)和蓝色(B)通道。这三个通道组合在一起创建了图像的彩色。每个通道包含了对应颜色的亮度信息。

二、使用OpenCV提取RGB颜色通道

首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装它:

pip install opencv-python

 接下来,我们来看看如何提取RGB颜色通道:

注意:在OpenCV中,图像通道的顺序是按BGR(蓝绿红)顺序排列,而不是通常的RGB(红绿蓝)顺序。这是OpenCV的一个特殊之处,你需要牢记这一点,以避免在处理图像时出现颜色通道的混淆。

import cv2

# 1. 读取图像
a = cv2.imread(r'./timg98.jpg')

# 2. 提取颜色通道
a1 = a[:, :, 0]  # 蓝色通道(B通道)
a2 = a[:, :, 1]  # 绿色通道(G通道)
a3 = a[:, :, 2]  # 红色通道(R通道)

# 或者使用 cv2.split() 来分离颜色通道
b, g, r = cv2.split(a)
# b 包含蓝色通道
# g 包含绿色通道
# r 包含红色通道

# 3. 显示蓝色通道的图像
cv2.imshow('result', b)

# 4. 设置窗口显示时间,单位为毫秒(这里设置为100秒,可以根据需要调整)
cv2.waitKey(100000)

# 5. 关闭所有窗口
cv2.destroyAllWindows()

运行结果:

opencv 获取rgb通道,opencv,人工智能,计算机视觉,python

注意:我们这里是显示蓝色通道的图像,但是所显示的图片确实灰色的,那是因为只显示蓝色通道时,实际上是将蓝色通道作为亮度值,而将绿色和红色通道设置为默认的最大值,也就是255。这会导致图像呈现为灰色。

想要展示只包含蓝色通道信息的彩色图像,可以将图像中的绿色通道和红色通道设为0,即移除绿色和红色,只保留蓝色。

可以通过以下代码实现:

# 导入OpenCV库
import cv2

# 从指定路径加载一张图片('./timg98.jpg'是图片文件的路径)
a = cv2.imread(r'./timg98.jpg')

# 复制原始图像以避免更改原始图像
a_new = a.copy() 

# 将图像中的绿色通道和红色通道设为0,即移除绿色和红色,只保留蓝色
a_new[:,:,1] = 0  # 绿色通道设为0
a_new[:,:,2] = 0  # 红色通道设为0

# 创建一个窗口来显示修改后的图像,并将其命名为'result'
cv2.imshow('result', a_new)

# 等待用户按键触发,这里设置等待时间为100000毫秒(100秒)
# 如果用户在这个时间内按下任意键,程序将继续执行
# 如果等待时间为0(cv2.waitKey(0)),则会一直等待用户按键
cv2.waitKey(100000)

# 关闭所有打开的图像窗口
cv2.destroyAllWindows()

运行结果:

opencv 获取rgb通道,opencv,人工智能,计算机视觉,python

三、合并RGB颜色通道

成功提取RGB颜色通道后,我们又想把它们合并,就可以通过以下代码实现:

import cv2

# 1. 读取图像
a = cv2.imread(r'./timg98.jpg')

# 2. 提取颜色通道
a1 = a[:, :, 0]  # 蓝色通道(B通道)
a2 = a[:, :, 1]  # 绿色通道(G通道)
a3 = a[:, :, 2]  # 红色通道(R通道)

# 或者使用 cv2.split() 来分离颜色通道
b, g, r = cv2.split(a)
# b 包含蓝色通道
# g 包含绿色通道
# r 包含红色通道

# 使用cv2.merge()函数将三个通道重新合并成一个图像
img = cv2.merge((b, g, r))
#img = cv2.merge((a1,a2,a3)) 或者使用这行代码

# 创建一个窗口来显示合并后的图像,并将其命名为'result'
cv2.imshow('result', img)

# 等待用户按键触发,这里设置等待时间为100000毫秒(100秒)
# 如果用户在这个时间内按下任意键,程序将继续执行
# 如果等待时间为0(cv2.waitKey(0)),则会一直等待用户按键
cv2.waitKey(100000)

# 关闭所有打开的图像窗口
cv2.destroyAllWindows()

运行结果:

opencv 获取rgb通道,opencv,人工智能,计算机视觉,python文章来源地址https://www.toymoban.com/news/detail-736323.html

到了这里,关于OpenCv对于图片的RGB三色通道的提取与合并的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV(六):多通道分离与合并

    目录 1.多通道分离split()  2.多通道合并merge()  3.Android JNI demo 1.多通道分离split()  void cv::split ( InputArray  m, OutputArrayOfArrays mv ) m:待分离的多通道图像。 mv:分离后的单通道图像,为向量vector形式。 2.多通道合并 merge()  void cv::merge ( InputArrayOfArrays mv, OutputArray    dst ) mv:需要合

    2024年02月10日
    浏览(46)
  • OpenCV 04(通道分离与合并 | 绘制图形)

    - split(mat)分割图像的通道 - merge((ch1,ch2, ch3)) 融合多个通道 利用OpenCV提供的绘制图形API可以轻松在图像上绘制各种图形, 比如直线, 矩形, 圆, 椭圆等图形. - line(img, pt1, pt2, color, thickness, lineType, shift) 画直线   - img: 在哪个图像上画线   - pt1, pt2: 开始点, 结束点. 指定线的开始与结

    2024年02月09日
    浏览(43)
  • opencv+python(通道的分离与合并)笔记

    分割图像通道: 通过函数mv=split(img);mv返回的通道; RGB有3个通道;灰度图只有一个通道; 合并图像通道:cv2.merge((b,g,r)) 修改图像中某区域的颜色: img[10:100,10:100]=0 表示将图像img的行索引从10到100(不包括100)和列索引从10到100(不包括100)的区域像素值设置为0。这里的1

    2024年04月10日
    浏览(37)
  • OpenCV4通道的分离split(),通道的合并merge(),通道的混合mixChannels()

    opencv中默认imread函数加载图像文件,加载进来的是三通道彩色图像,色彩空间是RGB色彩空间,通道顺序是BGR(蓝色、绿色、红色),对于三通道的图像OpenCV中提供了三个API函数用以实现通道分离split(),合并merge(),混合mixChannels(); RGB图像,在opencv的Mat中,像素数据,存储结构

    2024年02月12日
    浏览(48)
  • OpenCV for Python 学习第四天 :通道的获取与合并

    上一篇博客,我们学习了如何通过更快的item()和itemset()的方法访问图片,以及了解了图像的兴趣位置的获取方法,那么今天,我们将学习通道的处理方法,通过通道的拆分和合并的实例,让大家更好的了解咱们有关于BGR通道的知识。 在OpenCV中,可以使用split()方法将图像的不

    2024年02月17日
    浏览(42)
  • 用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

    本小节代码在配套资料“iTOP-3568 开发板\\03_【iTOP-RK3568 开发板】指南教程 \\04_OpenCV 开发配套资料\\07”目录下,如下图所示: 在计算机的色彩图像中存有三个通道,即 BGR 通道,根据三个颜色通道的亮度值来显示出不同的颜色,通过 imread()函数读取图像文件之后,图像信息会保

    2024年02月10日
    浏览(40)
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 视频图像处理基础操作 之 视频捕获/存储/提取/合成/合并

    目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 视频图像处理基础操作 之 视频捕获/存储/提取/合成/合并 一、简单介绍 二、视频处理流程和原理 三、视频的捕获和存储 四、提取视频中的某些帧 五、将图片合成为视频 六、多个视频合并 Python是一种跨平台的计算机程序设计

    2024年04月10日
    浏览(123)
  • 如何将yuv420p图像数据转换为RGB数据并使用opencv保存为jpg图片

    yuv420是用4个byte存储4个Y的信息,用1个Byte存储U的信息,一个Byte存储V的信息, 这4个Y共用这2个U和V ,也就是用6个Byte 存储4个像素信息,也就是一个像素需要12个Bits(6*8/4),也就是12bpp。 注意yuv420p里面的p是指planar,也就是分层存储,先存全部Y的信息,然后是U的信息,最后

    2024年02月16日
    浏览(39)
  • OpenCV+OpenCvSharp实现图片特征向量提取与相似度计算

    图片特征向量是一种用于描述图片内容的数学表示,它可以反映图片的颜色、纹理、形状等信息。图片特征向量可以用于做很多事情,比如图片检索、分类、识别等。 本文将介绍图片特征向量的提取以及相似度的计算,并使用C#来实现它们。 文章开始前,我们先来简单了解一

    2024年02月08日
    浏览(41)
  • python 提取出图片特定区域的平均rgb值

    首先原图如下:需要提取出十字架顶端的四个圆区域带颜色的平均rgb值,如果是白色的就不参与计算 输出结果如下:

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包