当前位置: 首页 > news >正文

python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分

【1】引言

前序已经对BGR图像和HSV图像的转换进行了基本讨论,相关文章链接为:

python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客

python学opencv|读取图像(十三)BGR图像和HSV图像互相转换深入-CSDN博客

在前序学习进程中,我们也了解BGR彩色图像 存在三个通道来管理三种基色的组成比例,此外HSV图像也存在三个参数来管理图像亮度饱和度等。相关文章链接有:

python学opencv|读取图像(六)读取图像像素RGB值_opencv读取灰度图-CSDN博客

在此基础上,我们尝试抓取各个通道的具体数值

带着这个目标,我们开启本次学习。

【2】官网教程

要想抓取各个通道的具体数值,需要使用split()函数,点击下述链接,可以直达官网教程:

OpenCV: Channel split

 未进行实际测试,我们开始编辑代码。

【3】代码测试

【3.1】读取图像

首先是完成图片的读取,可写入的基础代码为:

import cv2 as cv #引入CV模块
import numpy as np #引入numpy模块bgr_image=cv.imread('cv-ini-000.png')if bgr_image is not None:cv.imshow('cv-ini-000',bgr_image) #在屏幕上展示图片cv.imwrite('cv-ini-000-save.png',bgr_image) #保存图片cv.waitKey() #不会自动关闭图像cv.destroyAllWindows() #释放所有窗口
else:print("There is no any photo")

在这里,使用的原始图像cv-ini.png为:

 图1 cv-ini.png

【3.2】BGR拆分

然后先进行BGR拆分以读取数据,可以直接新增下述代码:

b,g,r=cv.split(bgr_image) #bgr拆分
cv.imshow('B',b) #显示B通道
cv.imshow('G',g) #显示G通道
cv.imshow('R',r) #显示R通道cv.imwrite('cv-ini-000-save-b.png',b) #保存B通道图片
cv.imwrite('cv-ini-000-save-g.png',g) #保存G通道图片
cv.imwrite('cv-ini-000-save-r.png',r) #保存R通道图片

运行后,获得BGR通道的照片为:

图2 B通道图像

图3 G通道图像

图4 R通道图像 

【3.3】HSV拆分

然后先进行HSV拆分,可以直接新增下述代码。

代码包括两大模块:第一模块将BGR图像转化为HSV图像,第二模块才是对HSV图像进行通道拆分以进行数据读取。

    # BGR转HSVhsv_image=cv.cvtColor(bgr_image,cv.COLOR_BGR2HSV) #BGR转HSVcv.imshow('cv-ini-000-hsv',hsv_image) #在屏幕上展示图片cv.imwrite('cv-ini-000-save-hsv.png',hsv_image) #保存图片# HSV拆分h,s,v=cv.split(hsv_image) #HSV拆分cv.imshow('H',h) #显示H通道cv.imshow('S',s) #显示S通道cv.imshow('V',v) #显示V通道# 保存cv.imwrite('cv-ini-000-save-h.png',h) #保存H通道图片cv.imwrite('cv-ini-000-save-s.png',s) #保存S通道图片cv.imwrite('cv-ini-000-save-v.png',v) #保存V通道图片

运行代码后,获得的HSV格式图像为:

图5 HSV格式图像

获得的H、S和V通道照片为:

图6 H通道图像

图7 S通道图像

 图8 V通道图像

 【4】总结

掌握了BGR和HSV图像各通道数据抓取函数cv2.split()的基本使用方法。

相关文章:

python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分

【1】引言 前序已经对BGR图像和HSV图像的转换进行了基本讨论,相关文章链接为: python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客 python学opencv|读取图像(十三)BGR图像和HSV图像互相转换深入-C…...

C# 结构体和类

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、类(Class)二、结构体(Struct)示例代码(定义类和结构体)类的继承代码示例&#xff08…...

D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。

概述: D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。 主要特点: ● 高精度基准电路 ● 定时闩锁、短路保护电路 ● 低电压输入时误操作保护电路 ● 输出基准电压(2.5V) ● 超过工作范围能进行自动校…...

题目 1738: 排序

题目 1738: 排序 时间限制: 2s 内存限制: 96MB 提交: 14351 解决: 3477 题目描述 对输入的n个数进行排序并输出。 输入格式 输入的第一行包括一个整数n(1<n<100)。 接下来的一行包括n个整数。 输出格式 可能有多组测试数据&#xff0c;对于每组数据&#xff0c;将排序后…...

爬虫逆向学习(十四):分享一下某数通用破解服务开发经验

阅前须知 这篇博客不是教大家怎么实现的&#xff0c;而且告知大家有这个东西&#xff0c;或者说一种趋势&#xff0c;借此分享自己大致的实现经验。具体的实现我也不好整理&#xff0c;毕竟是在别人的基础上缝缝补补。 前言 使用补环境方式破解过某数的同学都知道&#xff0…...

《Vue进阶教程》第十一课:响应式系统介绍

1 什么是响应式 当数据改变时, 引用数据的函数会自动重新执行 2 手动完成响应过程 首先, 明确一个概念: 响应式是一个过程, 这个过程存在两个参与者: 一方触发, 另一方响应 比如说, 我们家小胖有时候不乖, 我会打他, 他会哭. 这里我就是触发者, 小胖就是响应者 同样, 所谓…...

rpc设计的再次思考20251215(以xdb为核心构建游戏框架)

1.服务提供者注册的方式 // 表明这是一个服务提供者&#xff0c;ServerType 和 ServerId从application.properties中读取 // 而且只有当当前服务是Game时&#xff0c;才生效。 或者 条件注解??? RpcProvider(typeServerType.Game) public class GameProvider{MsgReceiver…...

pydub AudioSegment增加音频文件音量并保存- python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

IT 新突破!远程控制电脑技术造就工作与学习新方向!

远程控制电脑技术的历史可追溯到计算机网络的早期时代。最初&#xff0c;通过电话线和调制解调器的组合&#xff0c;实现了远程访问&#xff0c;这是远程控制电脑技术的雏形。随着互联网技术的飞速发展&#xff0c;远程控制电脑技术也日趋完善&#xff0c;并在多个领域得到了广…...

LabVIEW起落架震台检测

在现代飞机制造与维护过程中&#xff0c;起落架的性能测试是保障飞机安全的重要环节。通过LabVIEW开发的起落架小落震台检测系统&#xff0c;通过模拟飞机着陆过程&#xff0c;准确捕捉起落架在着陆时承受的各种动力学特性和应力响应&#xff0c;有效提升起落架设计的精度与可靠…...

Day24 C++ 接口(抽象类)

C 接口&#xff08;抽象类&#xff09; 接口描述了类的行为和功能&#xff0c;而不需要完成类的特定实现。 C 接口是使用抽象类来实现的&#xff0c;抽象类与数据抽象互不混淆&#xff0c;数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明…...

UE5 关于画质、机能与开发成本的思考

1、并不省时间 UE5等工具优点是可以通过一些工具与资源快速获得较好的画面&#xff0c;节约一些时间&#xff0c; 但缺点也很多&#xff0c; 一个是各种精度的素材之间的协调问题&#xff0c;参差不齐&#xff0c;统一升级到高精度会产生较大的成本&#xff0c; 一个是资源…...

IOS学习路线图

‌iOS是由苹果公司开发的移动操作系统。 苹果公司最早于2007年1月9日的Macworld大会上公布这个系统&#xff0c;最初是设计给iPhone使用的&#xff0c;后来陆续套用到iPod touch、iPad上。iOS与苹果的macOS操作系统一样&#xff0c;属于类Unix的商业操作系统。原本这个系统名为…...

HICE-day6

二层交换 交换基础 所谓的二层交换机指的是针对数据的二层头部&#xff08;以太网帧头&#xff09;中的MAC地址进行寻址并转发数据的交换设备。二层交换机不具备路由功能&#xff0c;它工作在OSI七层模型的第二层&#xff0c;因此被称为二层交换机。 上图中&#xff0c;PC1、…...

第100+33步 ChatGPT学习:时间序列EMD-ARIMA-LSTM模型

基于Python 3.9版本演示 一、写在前面 上一节&#xff0c;我们学了经验模态分解&#xff08;Empirical Mode Decomposition&#xff0c;EMD&#xff09;。 如同结尾所说&#xff0c;“那么&#xff0c;做这些分解有什么作用呢&#xff1f;有大佬基于这些分解出来的序列分别作…...

(C语言)双向链表

目录 链表的分类 双向链表的实现 1&#xff09;定义链表 2&#xff09;初始化双向链表 3&#xff09;申请节点 4&#xff09;尾插 5&#xff09;头插 6&#xff09;打印链表 7&#xff09;尾删 8&#xff09;头插 9&#xff09;查找 10&#xff09;指定位置删除 11…...

青少年编程与数学 02-004 Go语言Web编程 04课题、接收和处理请求

青少年编程与数学 02-004 Go语言Web编程 04课题、接收和处理请求 课题摘要:一、构建WEB服务器1. 安装Go语言2. 创建项目结构3. 编写代码4. 运行WEB服务器5. 访问WEB服务器 二、接收请求1. 定义处理函数&#xff08;Handler&#xff09;2. 将处理函数与路由关联3. 启动服务器4. …...

Unity全局光照详解

之前就学过但是太久没用又忘了&#xff0c;因此用最简洁易懂的语言做个记录。 全局光照分为两个系统&#xff0c;分别是实时光照和混合光照。&#xff08;点击window/Rendering/Lighing打开此面板&#xff09; 其中全局光照对于我来说都是新技术了&#xff0c;上一次学…...

计算机网络知识点全梳理(三.TCP知识点总结)

目录 TCP基本概念 为什么需要TCP 什么是TCP 什么是TCP链接 如何唯一确定一个 TCP 连接 TCP三次握手 握手流程 为什么是三次握手&#xff0c;而不是两次、四次 为什么客户端和服务端的初始序列号 ISN 不同 既然 IP 层会分片&#xff0c;为什么 TCP 层还需要 MSS TCP四…...

ELK Stack 安装、配置以及集成到 Java 微服务中的使用

ELK Stack 是由 Elasticsearch、Logstash 和 Kibana 组成的日志管理解决方案。以下是详细的安装、配置步骤以及如何将其集成到 Java 微服务中。 1. 安装 ELK Stack 1.1 安装 Elasticsearch 在 Ubuntu 上安装 Elasticsearch&#xff1a; bash wget -qO - https://artifacts…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

HTML中各种标签的作用

一、HTML文件主要标签结构及说明 1. <&#xff01;DOCTYPE html> 作用&#xff1a;声明文档类型&#xff0c;告知浏览器这是 HTML5 文档。 必须&#xff1a;是。 2. <html lang“zh”>. </html> 作用&#xff1a;包裹整个网页内容&#xff0c;lang"z…...

uni-app学习笔记二十七--设置底部菜单TabBar的样式

官方文档地址&#xff1a;uni.setTabBarItem(OBJECT) | uni-app官网 uni.setTabBarItem(OBJECT) 动态设置 tabBar 某一项的内容&#xff0c;通常写在项目的App.vue的onLaunch方法中&#xff0c;用于项目启动时立即执行 重要参数&#xff1a; indexnumber是tabBar 的哪一项&…...

【Unity】R3 CSharp 响应式编程 - 使用篇(二)

一、通用的事件监听用法 using System;using R3;using UnityEngine;namespace Aladdin.Standard.Observable.Common{public class CommonObservable : MonoBehaviour{// 默认会调用1次public SerializableReactiveProperty<int> serializableReactiveProperty;…...

Ubuntu 系统.sh脚本一键部署内网Java服务(组件使用docker镜像,宕机自启动)

#!/bin/bash# 更新系统并安装必要的依赖 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common# 安装 Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository …...