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】读取图像

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

python 复制代码
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图像进行通道拆分以进行数据读取。

python 复制代码
    # BGR转HSV
    hsv_image=cv.cvtColor(bgr_image,cv.COLOR_BGR2HSV) #BGR转HSV
    cv.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()的基本使用方法。

相关推荐
阿图灵1 分钟前
OpenCV 算术运算四件套:NOT/AND/OR 位运算与图像混合
图像处理·人工智能·python·opencv·计算机视觉·位运算
我叫张土豆3 分钟前
在 OpenClaw Java 对话框输入一句话后,系统是如何运行的?
java·开发语言·人工智能
边吃番茄边敲代码5 分钟前
企业智能助手Agent 安全测试,包含Prompt Injection 和越权工具调用
人工智能·python·功能测试·ai·单元测试·prompt·模块测试
牛油果子哥q13 分钟前
C++模板万字深度精讲:函数/类模板特化、全特化与偏特化、SFINAE机制、类型萃取、模板元编程入门、工程实战落地
开发语言·c++·面试
阿图灵15 分钟前
OpenCV 阈值与模糊:全局/自适应阈值、Canny 边缘检测与三种模糊
图像处理·人工智能·python·opencv·计算机视觉·边缘检测
欧特克_Glodon23 分钟前
OpenCV计算机视觉开发入门与实践<二十一>:灰度直方图清晰化图像
c++·人工智能·opencv·计算机视觉
神仙别闹26 分钟前
基于C++ 实现 L 系统分形树
开发语言·c++
桃西西呀27 分钟前
国内金价破 1000,「涨了多少」和「该买多少」是数学问题
人工智能·python·数据分析
君顾127 分钟前
AI智能商城实战指南:从架构设计到部署落地的完整技术方案
java·开发语言·多商户