需要源码请点赞关注收藏后评论区留言私信~~~
色彩是人类的眼睛对于不同频率的光线的不同感受,不同频率的光线既是客观存在的又是人类主观感知的。为了表示这些不同频率的光线的色彩,人类建立了多种色彩模型,把这些色彩模型称作色彩空间。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()
创作不易 觉得有帮助请点赞关注收藏~~~