据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。
前言:
作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
专栏介绍:OpenCV从入门到放弃 ,一个学习OpenCV的专栏~
专栏文章直链:
【OpenCV学习】初识OpenCV其二
【OpenCV学习】初识OpenCV
类似 Matplotlib 等软件使用这标准的色彩空间(人眼也是这么看世界的颜色)。
R
就是 Red
的缩写;G
就是 Green
的缩写;B
就是 Blue
的缩写。
这是 OpenCV 默认显示的色彩空间。
字母缩写含义同 RGB
。
这是 OpenCV 里用的最多的色彩空间。
为什么常用,因为可以仅仅通过第一个字母 H
即 Hue
来判断色彩颜色:
H
S
Saturation
:饱和度,表示颜色接近光谱色的程度,可以理解为纯色中混入白色的量;理解成溶液的话就是,在纯浅色溶质中加入了白色的溶剂(综合)。范围 0%~100% ,值越大,越饱和。V
/ B
Value
/ Bright
:明度 / 亮度,范围 0%(黑)~100%(白)。字面意思与 HSV
一致,但这里的 S
指的是颜色的纯度;理解成溶液的话就是,在纯浅色溶质中加入了无色的溶剂(稀释)。这里的 L
在顶部是纯白色,底部是纯黑色,不管是什么 Hue
颜色。
HSV(B)
与 HSL
图解区别:
对比 HSV(B)
和 HSL
的区别:
HSB
:S
控制纯色中混入白色的量,值越大,白色越少,颜色越纯。HSB
:B
控制纯色中混入白色的量,值越大,白色越少,颜色越纯。HSL
:S
和黑白没有关系,饱和度不控制颜色中混入黑白的多少。HSL
:L
控制纯色中混入的黑白两种颜色。一种颜色编码的方法,在以前看有线电视、卫星电视时,为了能使用有限的带宽进行较快的响应,所以采用这种编码方式,既能满足人眼需求,又能占用极少的带宽。其发明是在彩色电视与黑白电视的过渡时期。
Y
:明亮度,也就是灰阶值(黑白电视的编码)。U
、V
:色度, 用于描述影像色彩及饱和度,用于指定像素的颜色。不同比例的区别:
应该不会有人会想记住所有形式吧?
在PyCharm中,输入前缀即可查看:
在Jputer中,按下 Tab 键即可打开提示:
from cv2 import cv2
def callback(value):
pass
cv2.namedWindow('color', cv2.WINDOW_NORMAL)
cv2.resizeWindow('color', 640, 480)
# 读取图片,OpenCV读进来的图片默认是BGR的色彩空间。
img= cv2.imread('./cat.jpeg')
# 定义颜色空间转化方法。
color_spaces = [
# 所有颜色空间的转化都是COLOR开头。
cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA,
cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
cv2.COLOR_BGR2YUV
]
# 设置trackbar
cv2.createTrackbar('trackbar', 'color', 0, 4, callback)
while True:
# 获取trackbar的值
index = cv2.getTrackbarPos('trackbar', 'color')
# 进行颜色空间转换
cvt_img = cv2.cvtColor(img, color_spaces[index])
cv2.imshow('color', cvt_img)
if cv2.waitKey(10) == ord('q'):
break
cv2.destroyAllWindows()
或者使用 callback
函数进行处理:
from cv2 import cv2
def callback(value):
# 进行颜色空间转换
cvt_img = cv2.cvtColor(img, color_spaces[value])
cv2.imshow('color', cvt_img)
cv2.namedWindow('color', cv2.WINDOW_NORMAL)
cv2.resizeWindow('color', 640, 480)
# 读取图片,OpenCV读进来的图片默认是BGR的色彩空间。
img = cv2.imread('./cat.jpeg')
# 定义颜色空间转化方法。
color_spaces = [
# 所有颜色空间的转化都是COLOR开头。
cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA,
cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV,
cv2.COLOR_BGR2YUV
]
# 设置trackbar
cv2.createTrackbar('trackbar', 'color', 0, 4, callback)
callback(0)
cv2.waitKey(0)
cv2.destroyAllWindows()
滑动 trackbar
就能看到不同的处理后的猫~
(RGBA
与 RGB
) 或 (BGRA
与 BGR
) 的区别就在于, A
是透明度,一般保存 png
文件才会有。