上海市建设工程检测行业协会网站,动画设计思路怎么写,wordpress设置登录页面,WordPress影视采集一、OpenCV的色彩空间
1.1 RGB和BGR
最常见的色彩空间就是RGB, 人眼也是基于RGB的色彩空间去分辨颜色的. OpenCV默认使用的是BGR. BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同. 显示图片的时候需要注意适配图片的色彩空间和显示环境的色彩空间.比如传入的图片…一、OpenCV的色彩空间
1.1 RGB和BGR
最常见的色彩空间就是RGB, 人眼也是基于RGB的色彩空间去分辨颜色的. OpenCV默认使用的是BGR. BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同. 显示图片的时候需要注意适配图片的色彩空间和显示环境的色彩空间.比如传入的图片是BGR色彩空间, 显示环境是RBG空间, 就会出现颜色混乱的情况. 1.2 HSV, HSL和YUV
HSV
OpenCV用的最多的色彩空间是HSV.
- Hue: 色相, 即色彩, 如红色, 蓝色. 用角度度量取值范围为0°360°从红色开始按逆时针方向计算红色为0°绿色为120°,蓝色为240° - Saturation: 饱和度, 表示颜色接近光谱色的程度。一种颜色可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大颜色接近光谱色的程度就愈高颜色的饱和度也就愈高。饱和度高颜色则深而艳。光谱色的白光成分为0饱和度达到最高。通常取值范围为0%100%值越大颜色越饱和。 - Value: 明度. 明度表示颜色明亮的程度对于光源色明度值与发光体的光亮度有关对于物体色此值和物体的透射比或反射比有关。通常取值范围为0%黑到100%白。 为什么要使用HSV?
方便OpenCV做图像处理.比如根据hue的值就可以判断背景颜色. HSL
HSL和HSV差不多.
- Hue: 色相
- Saturation: 饱和度
- Lightness: 亮度 HSL在顶部是纯白的, 不管是什么颜色. HSV和HSL的区别: YUV
**YUV**是一种颜色编码方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时考虑到人类的感知能力允许降低色度的带宽。
“Y”表示明亮度Luminance或Luma也就是灰阶值“U”和“V”表示的则是色度Chrominance或Chroma作用是描述影像色彩及饱和度用于指定像素的颜色。
YUV的发明是由于彩色电视与黑白电视的过渡时期。
YUV最大的优点在于只需占用极少的带宽。
- 4:4:4表示完全取样。
- 4:2:2表示2:1的水平取样垂直完全采样。
- 4:2:0表示2:1的水平取样垂直21采样。
- 4:1:1表示4:1的水平取样垂直完全采样。 1.3 色彩空间的转换
cvtColor(img, colorspace): 颜色转换的关键API
import cv2def callback(value):passcv2.namedWindow(color, cv2.WINDOW_NORMAL)
cv2.resizeWindow(mouse, 640, 480)img cv2.imread(./cat.jpeg)# 常见的颜色空间转换
colorspaces [cv2.COLOR_BGR2RGBA, cv2.COLOR_BGR2BGRA, cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV, cv2.COLOR_BGR2YUV]
cv2.createTrackbar(curcolor, color, 0, 4, callback)while True:index cv2.getTrackbarPos(curcolor, color)#颜色空间转换APIcvt_img cv2.cvtColor(img, colorspaces[index])cv2.imshow(color, cvt_img)key cv2.waitKey(10)if key 0xFF ord(q):breakcv2.destroyAllWindows()