码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • cv2.split函数与cv2.merge函数


    split函数用于图像BGR通道的分离

    merge函数用于可将分开的图像通道合并到一起

    1.split函数的使用

    这是原图,我们使用split函数对其三个通道进行分离。

    注意:split函数分离通道的顺序是B、G、R。

    以下方法是将三个通道的值都设置为与某一个通道相同。

    1. import numpy as np
    2. import cv2 # 导入opencv模块
    3. image = cv2.imread("test.jpg") # 读取要处理的图片
    4. B, G, R = cv2.split(image) # 分离出图片的B,R,G颜色通道
    5. cv2.imshow("RED COMPONENT FOR ALL THREE CHANNELS", R) # 显示三通道的值都为R值时的图片
    6. cv2.imshow("GREEN COMPONENT FOR ALL THREE CHANNELS", G) # 显示三通道的值都为G值时的图片
    7. cv2.imshow("BLUE COMPONENT FOR ALL THREE CHANNELS", B) # 显示三通道的值都为B值时的图片
    8. cv2.waitKey(0)

    B通道

    G通道

    R通道

    如果图中某一颜色较强,这种方法可以用于区分出图中B、G、R三原色的强弱。

    如果想提取单一通道,其他通道值设为0,使用以下代码:

    1. import numpy as np
    2. import cv2 # 导入opencv模块
    3. image = cv2.imread("test.jpg") # 读取要处理的图片
    4. B, G, R = cv2.split(image) # 分离出图片的B,R,G颜色通道
    5. zeros = np.zeros(image.shape[:2], dtype="uint8") # 创建与image相同大小的零矩阵
    6. cv2.imshow("DISPLAY BLUE COMPONENT", cv2.merge([B, zeros, zeros])) # 显示(B,0,0)图像
    7. cv2.imshow("DISPLAY GREEN COMPONENT", cv2.merge([zeros, G, zeros])) # 显示(0,G,0)图像
    8. cv2.imshow("DISPLAY RED COMPONENT", cv2.merge([zeros, zeros, R])) # 显示(0,0,R)图像
    9. cv2.waitKey(0)

    代码中使用了image.shape[:2],理解image.shape[:2]可参考下文。理解image.shape[:2]与image.shape[:3]icon-default.png?t=N7T8https://blog.csdn.net/Mr_LanGX/article/details/120275615

    例:h,w = img.shape[:2] 获取彩色图片的高、宽,并且赋值给h和w;如果是h,w,v = img.shape[:3] 获取彩色图片的高、宽、通道,并赋值给h w v

    运行代码:

    B通道

    G通道

    R通道

    2.merge函数的使用

    merge函数将三个分离的通道合并。

    1. import numpy as np
    2. import cv2 # 导入opencv模块
    3. image = cv2.imread("test.jpg") # 读取要处理的图片
    4. B, G, R = cv2.split(image) # 分离出图片的B,R,G颜色通道
    5. cv2.imshow("MERGE RED,GREEN AND BLUE CHANNELS", cv2.merge([B, G, R])) # 显示(B,G,R)图像
    6. cv2.waitKey(0)

    显示图像与原图相同。

  • 相关阅读:
    AI加速(八)| 循环展开Unrooling——你肯定能学会的程序加速方法
    @Lazy注解的原理
    【Leetcode刷题Python】199. 二叉树的右视图
    栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)
    java任务跟踪系统
    运维相关技术描叙说明
    JS案例:在浏览器实现自定义菜单
    Netty 学习(三):通信协议和编解码
    (01)ORB-SLAM2源码无死角解析-(55) 闭环线程→闭环检测:寻找闭环候选关键帧 LoopClosing::DetectLoop()
    C语言程序设计(二)基础内容
  • 原文地址:https://blog.csdn.net/w1015601709/article/details/133647394
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号