首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【图像篇】OpenCV图像处理(五)---图像的色彩空间

【图像篇】OpenCV图像处理(五)---图像的色彩空间

作者头像
用户5410712
发布于 2022-06-01 11:05:56
发布于 2022-06-01 11:05:56
87700
代码可运行
举报
文章被收录于专栏:居士说AI居士说AI
运行总次数:0
代码可运行

我们大家未来的命运如何,将会遭遇到什么,现在谁也难以预料,所能把握的,唯此心而已。

前言

大家好,在上一期的文章中,我们简单的讲解了图像的切割与ROI获取(【图像篇】OpenCV图像处理(四)---图像切割&ROI选取),这样做的目的是,使我们能够对图像的局部进行处理,而不是整个图像,因此,可以大大节约我们的工作时间哦,一起来看看今天的内容吧

一、图像的色彩空间

在前面的图像知识中,我们认识到了图像有两种基本的色彩空间,RGB图像和灰度图像,然后图像还有别的色彩空间,比如:BGR,LAB, HSV等等。

1.1 RGB图像分通道显示

1.原图

2.代码实践

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#coding:utf-8
import cv2
import numpy as np
# 图像路径
image_path = 'color.jpg'
# 读取图像
image = cv2.imread(image_path)
# 分通道获取图像
b = image[:, :, 0]
g = image[:, :, 1]
r = image[:, :, 2]
#由于上面额操作只是获取了对应通道的矩阵,就这样显示的话 是灰度图像
# 为了显示每个通道的颜色,需要采用以下操作,将非显示的通道元素设置为0
#image_b = cv2.merge([b, np.zeros(b.shape, np.uint8), np.zeros(b.shape, np.uint8)])
image_b = np.dstack((b, np.zeros(b.shape, np.uint8), np.zeros(b.shape, np.uint8)))
image_g = np.dstack((np.zeros(b.shape, np.uint8), g, np.zeros(b.shape, np.uint8)))
image_r = np.dstack((np.zeros(b.shape, np.uint8), np.zeros(b.shape, np.uint8), r))
cv2.imshow("image_b", image_b)
cv2.imshow("image_g", image_g)
cv2.imshow("image_r", image_r)
cv2.waitKey(0)

代码解读:

上述代码较为简单,基本就是图像的读取操作,接着就是对图像分通道获取矩阵,np.dstack()函数是比较注意的地方,按照代码中的操作解读,就是将不显示的通道进行赋零操作,然后将真正的通道图像显示。

3.效果展示

如上图可以看到,RGB图像分通道的真实效果是这样的,在上上期的文章中,我们并没有讲到这次补上了。

二、色彩空间转换(BGR to RGB)

在前期的文章中,我们了解到opencv读取的图像格式是BGR格式,现在就让我们一起来将其转换为RGB图像吧,同时看看他们的显示的不同。

2.1 代码实践

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#coding:utf-8
import cv2
import numpy as np
# 图像路径
image_path = 'color.jpg'
# 读取图像
image = cv2.imread(image_path)
cv2.imshow("image",image)
# 图像格式转换 BGR-RGB
newImg = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
cv2.imshow("newImg",newImg)
cv2.waitKey(0)

代码解读:

本次代码主要注意:

cv2.cvtColor(image, cv2.COLOR_BGR2RGB)函数,该函数主要是两个参数,第一个是需要转换的图像数据,第二个是想要转换的色彩空间。

2.2 效果展示

三、HSV色彩空间

HSV色彩空间(Hue-色调、Saturation-饱和度、Value-值)将亮度从色彩中分解出来,在图像增强算法中用途很广,在很多图像处理任务中,经常将图像从RGB色彩空间转换到了HSV色彩空间,以便更好地感知图像颜色,利用HSV分量从图像中提取感兴趣的区域。

H的范围是[0,360),S和V的范围是[0,1]。

HSV色彩空间如下图所示,用一个倒圆锥体表示整个色彩空间:

HSV-RGB对应表格:

3.1 RGB到HSV的转换的Demo

3.2 代码实践

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding:utf-8 -*-

import cv2
image = cv2.imread('color.jpg') # 根据路径读取一张图片
cv2.imshow("BGR", image) # 显示图片

# 转化图片到HSV色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV", hsv_image) # 显示图片
cv2.waitKey(0) # 等待键盘触发事件,释放窗口

代码解读:

该段代码中

cv2.cvtColor(image, cv2.COLOR_BGR2HSV)起到了转换的功能,没必要特别记忆,一般的IDE都会有提示的,只要知道用哪个色彩空间就好。

3.3 效果展示

从上图可以看到,转换后的图像变得不那么好看了,那这样做有啥用呢,其实这样做大有用处,比如我们要提取天上的云彩,就可以通过设置HSV色彩空间的高低阈值来做,具体的操作我们后期再来实践。

END

结语

好了,本期的OpenCV图像处理知识分享结束了,今天的内容有点多,希望大家下去好好理解并且实践哦,如果遇到不太好理解的地方,请记得后台咨询小编哦,我们一起来解决!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Opencv 图像处理:图像通道、直方图与色彩空间
将彩色图像,分成b 、g 、r 3个单通道图像。方便我们对 BGR 三个通道分别进行操作。
timerring
2022/11/02
2.4K0
Opencv 图像处理:图像通道、直方图与色彩空间
【OpenCV】Chapter10.色彩转换与图像绘制
常见的色彩空间包括:GRAY 色彩空间(灰度图像)、XYZ 色彩空间、YCrCb 色彩空间、HSV 色彩空间、HLS 色彩空间、CIELab 色彩空间、CIELuv 色彩空间、Bayer 色彩空间等。
zstar
2022/09/28
2.8K0
【OpenCV】Chapter10.色彩转换与图像绘制
[Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~
Eastmount
2022/11/25
3.1K0
【计算机视觉处理4】色彩空间转换
在第2篇中提到过,如果是二值图片(黑白图)或者灰度图片,一个像素需要一个8位二进制来表示。而对于彩色图像,一个像素则需要用3个8位二进制来表示。我们认为灰度图只有一个图层,而普通的彩色图像则有三个图层。
ZackSock
2021/01/08
1.4K0
使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
这篇博客将介绍使用Python,OpenCV获取、更改像素,修改图像通道,截取图像感兴趣ROI;单通道图,BGR三通道图,四通道透明图,不透明图;
玖柒的小窝
2021/10/25
1.4K0
使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
OpenCV 系列教程5 | OpenCV 图像处理(中)
霍夫变换是一种特征提取技术,主要应用于检测图像中的直线或者圆。 OpenCV 中分为霍夫线变换和霍夫圆变换。
机器视觉CV
2019/11/12
1.7K0
OpenCV 系列教程5 | OpenCV 图像处理(中)
【计算机视觉】使用OpenCV处理色彩空间(Python版)
GRAY色彩空间通道指的是灰度图像,灰度图像的通常只有1个,值范围是[0, 255],一共256个灰度级别。其中0表示纯黑色,255表示纯白色。0~255之间的数值表示不同的亮度(即色彩的深浅程度)的深灰色或浅灰色。因此,一副灰度图能展示丰富的细节信息,如图1所示。
蒙娜丽宁
2023/03/08
2.5K0
【计算机视觉】使用OpenCV处理色彩空间(Python版)
计算机视觉:2.6~4.5 颜色空间、数据结构与绘图
最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色的。 OpenCV默认使用的是BGR。BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。
DioxideCN
2022/08/05
1.1K0
计算机视觉:2.6~4.5 颜色空间、数据结构与绘图
Python OpenCV给证件照换底色
投简历、找工作这些事都需要证件照,有些还要求证件照背景颜色、尺寸大小,本文分享一下如果通过Python OpenCV来实现照片裁剪和更换背景色
用户9925864
2022/07/27
1.3K0
Python OpenCV给证件照换底色
[python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解
色彩空间又可以叫做色域,英文是Color Sapce,是一种人为建立,用于表示色彩的一种“坐标系统”,或者说是一种色彩访问的取值系统,用于描述色彩。了解色彩空间对我们今后使用opencv进行图像处理很重要,在今后对图像处理时将会涉及到色彩空间的内容,所以学习了解色彩空间是有必要的。
1_bit
2021/01/14
1.5K0
[python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~
Eastmount
2021/12/02
3.2K0
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
基于OpenCV的彩色空间互转
图像彩色空间互转在图像处理中应用非常广泛,而且很多算法只对灰度图有效;另外,相比RGB,其他颜色空间(比如HSV、HSI)更具可分离性和可操作性,所以很多图像算法需要将图像从RGB转为其他颜色空间,所以图像彩色互转是十分重要和关键的。
Datawhale
2020/06/23
2.7K0
Python中使用opencv-python库进行颜色检测
之前写过一篇VC++中使用OpenCV进行颜色检测的博文,当然使用opencv-python库也可以实现。 在Python中使用opencv-python库进行颜色检测非常简单,首选读取一张彩色图像,并调用函数imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV);函数将原图img转换成HSV图像imgHSV,再设置好HSV三个分量的上限和下限值,调用inRange函数imask = cv2.inRange(imgHSV,lower,upper)将HSV色彩图像转换成掩码图,掩码图中只有黑白二值图像,从而达到颜色检测的目的。颜色检测通常可以用于物体检测和跟踪中,尤其在不同的图像和物体中根据特定的颜色去筛选出某个物体。
ccf19881030
2024/05/24
6400
Python中使用opencv-python库进行颜色检测
OpenCV计算机视觉整理图像、视频加载与显示OpenCV的色彩空间OpenCV图形绘制
每一个像素有三种颜色——红色、绿色和蓝色。通过不同光源的组合,形成真彩色,有暗的,有明亮的。
算法之名
2021/11/15
1K0
OpenCV计算机视觉整理图像、视频加载与显示OpenCV的色彩空间OpenCV图形绘制
OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换
1. 学习目标 图像色彩空间; 函数说明与解释; 学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等; 学习 cv.cvtColor 函数的使用。 2. 常见色彩空间 3. 常见色彩空间说明 名称 说明 HSV 对计算机友好,区分各种色彩。 RGB 设备独立。 YCrCb Y分量表示信息,CrCb可以被压缩。 RGB是计算机显示器的标准支持色彩系统。 4. 常见色彩空间取值范围 名称 范围 HSV H:0-180;SV:0-255 RGB 0-255 5. 色彩空间转换
Rattenking
2022/10/04
1K0
OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换
OpenCV基础 | 4.色彩空间的转换
作者:小郭学数据 源自:快学python 学习视频可参见python+opencv3.3视频教学 基础入门[1] 今天写的是色彩空间的转换 1.常见色彩空间及色彩空间转换 RGB 红色:Red,绿色:Green,蓝色:Blue HSV 色相:Hue(0-180),饱和度:Saturation(0-255),明度;Value(0-255) 常用于颜色检测 HSL/HLS 色相:Hue、饱和度:Saturation、亮度:Lightness/Luminance 色相H:用角度度量,取值范围为0°~360°,从
快学Python
2021/08/09
6200
基于 opencv 的图像处理入门教程
虽然计算机视觉领域目前基本是以深度学习算法为主,但实际上很多时候对图片的很多处理方法,并不需要采用深度学习的网络模型,采用目前成熟的图像处理库即可实现,比如 OpenCV 和 PIL ,对图片进行简单的调整大小、裁剪、旋转,或者是对图片的模糊操作。
kbsc13
2020/07/16
2.5K0
基于 opencv 的图像处理入门教程
Python opencv 图像特效处理
灰色图像的所有颜色通道的值相等,所以要想将彩色图像变为灰色图像,只需将他们颜色通道的值相等即可。
用户9925864
2022/07/27
7560
Python opencv 图像特效处理
OpenCV Python 系列教程 4 - OpenCV 图像处理(上)
HSV 的色相范围为 [0,179],饱和度范围为 [0,255],值范围为 [0,255]。不同的软件使用不同的规模。
机器视觉CV
2019/07/15
3.2K0
OpenCV Python 系列教程 4 - OpenCV 图像处理(上)
opencv(4.5.3)-python(十)--改变色彩空间
在OpenCV中,有超过150种色彩空间转换方法。但我们只研究两种最广泛使用的方法:BGR ↔ Gray和BGR ↔ HSV。
用户9875047
2022/12/07
5720
opencv(4.5.3)-python(十)--改变色彩空间
推荐阅读
相关推荐
Opencv 图像处理:图像通道、直方图与色彩空间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档