当前位置: 首页 > 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()的基本使用方法。

http://www.lryc.cn/news/504619.html

相关文章:

  • C# 结构体和类
  • D9741是一块脉宽调制方三用于也收路像机和笔记本电的等设备上的直流转换器。在便携式的仪器设备上。
  • 题目 1738: 排序
  • 爬虫逆向学习(十四):分享一下某数通用破解服务开发经验
  • 《Vue进阶教程》第十一课:响应式系统介绍
  • rpc设计的再次思考20251215(以xdb为核心构建游戏框架)
  • pydub AudioSegment增加音频文件音量并保存- python 实现
  • IT 新突破!远程控制电脑技术造就工作与学习新方向!
  • LabVIEW起落架震台检测
  • Day24 C++ 接口(抽象类)
  • UE5 关于画质、机能与开发成本的思考
  • IOS学习路线图
  • HICE-day6
  • 第100+33步 ChatGPT学习:时间序列EMD-ARIMA-LSTM模型
  • (C语言)双向链表
  • 青少年编程与数学 02-004 Go语言Web编程 04课题、接收和处理请求
  • Unity全局光照详解
  • 计算机网络知识点全梳理(三.TCP知识点总结)
  • ELK Stack 安装、配置以及集成到 Java 微服务中的使用
  • list_
  • 电机驱动,为什么不需要变速器?
  • how to write 述职pptx as a tech manager
  • 关于QMessageBox的一些使用总结和避坑指南
  • C语言预处理详解
  • 大语言模型画图(流程图、框架图)
  • 2024年API接口发展趋势:智能化、自动化引领潮流
  • 数据挖掘与机器学习DMML(part 8)K近邻(KNN)
  • Fortify 24.2.0版本最新版 win/mac/linux
  • 突破时间与空间限制的富媒体百宝箱——智能工具箱:让云上内容生产更easy
  • MacOs使用Wine 安装UaExpert与UaExpert的使用