OpenCV中GRAY、HSV色彩空间的简介及与BGR色彩空间的转换演示(附源码 超详细)

简介: OpenCV中GRAY、HSV色彩空间的简介及与BGR色彩空间的转换演示(附源码 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~

色彩是人类的眼睛对于不同频率的光线的不同感受,不同频率的光线既是客观存在的又是人类主观感知的。为了表示这些不同频率的光线的色彩,人类建立了多种色彩模型,把这些色彩模型称作色彩空间。OpenCV中的BGR色彩空间有3个通道,即表示蓝色的B通道、表示绿色的G通道和表示红色的R通道

下面我们介绍另外两个比较常用的色彩空间:GRAY色彩空间和HSV色彩空间

一、GRAY色彩空间

GRAY色彩空间指的是灰度图像,灰度图像是一种每个像素都是从黑到白,被处理为256个灰度级别的单色图像,这256个灰度级别分别用区间(0,255)中的数值表示。其中0表示纯黑色,255表示纯白色,0-255的数值表示不同亮度的深灰色或者浅灰色,因此,一幅灰度图像也能够展现丰富的细节信息

OpenCV中用于转换图像色彩空间的cvtColor方法,其语法如下

dst=cv2.cvtColor(src,code)

src 转换前的初始图像

code 色彩控件转换吗

当图像从BGR色彩空间转换到GRAY色彩空间时,常用的色彩空间转换码是cv2.COLOR_BGR2GRAY

下面将BGR色彩空间转换到GRAY色彩空间

 

import cv2
image = cv2.imread("5.1.jpg")
cv2.imshow("5.1", image)  # 显示图5.1
# 将图5.1从BGR色彩空间转换到GRAY色彩空间
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("GRAY", gray_image)  # 显示灰度图像
cv2.waitKey()
cv2.destroyAllWindows()

二、HSV色彩空间

HSV色彩空间是基于色调、饱和度和亮度而言的

其中色调H是指光的颜色,在OpenCV中 色调在区间(0,180)内取值,例如代表红色 黄色 绿色和蓝色的色调值分别为0 30 60 120

彩虹中的色调

 

饱和度S是指色彩的深浅,在OpenCV中 饱和度在区间(0,255)内取值,当饱和度为0时图像将变为灰度图

亮度V是指光的明暗,与饱和度相同的取值范围,亮度值越大,图像越亮

光的明暗

从BGR色彩空间转换到HSV色彩空间时转换码时cv2.COLOR_BGR2HSV

代码如下

import cv2
image = cv2.imread("5.1.jpg")
cv2.imshow("5.1", image) # 显示图5.1
# 将图5.1从BGR色彩空间转换到HSV色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow("HSV", hsv_image) # 用HSV色彩空间显示的图像
cv2.waitKey()
cv2.destroyAllWindows()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
机器学习/深度学习 监控 算法
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
587 3
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
568 43
|
机器学习/深度学习 IDE 开发工具
基于OpenCV的车牌识别系统源码分享
基于OpenCV的车牌识别系统主要利用图像边缘和车牌颜色定位车牌,再利用OpenCV的SVM识别具体字符,从而达到车牌识别的效果。
797 4
基于OpenCV的车牌识别系统源码分享
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
537 30
|
Ubuntu 计算机视觉 C++
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
356 12
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
705 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
416 4
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
4699 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
405 4
|
存储 计算机视觉
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制
本文介绍了使用OpenCV进行图像读取、显示和存储的基本操作,以及如何绘制直线、圆形、矩形和文本等几何图形的方法。
Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制