RGB是人眼或计算机色彩空间,而Opencv默认是BGR,排列顺序不同,windows系统下的图片,h手机像素的排列是BGR,会在内部进行一些转换,转化为RGB格式
HSV(HSB):
色相(Hue);饱和度(Saturation),颜色的纯度;明度(Value)
同一截面内区域不同度数时代表不同的颜色,饱和度同一截面半径越长,颜色纯度越高。对于Value圆柱越高,图像越来越亮
HSL:色相、饱和度、亮度。
YUV:主要用在视频领域。
YUV4:2:0
第一行,4个Y里面两个U。第二行4个Y里面两个V
YUV4:2:2
YUV4:4:4
import cv2
def callback():
pass
cv2.namedWindow('color', cv2.WINDOW_NORMAL)
img = cv2.imread('d:/download/1.png')
colorspaces = [cv2.COLOR_BGR2RGBA, cv2.COLOR_RGBA2BGR, cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV_FULL, cv2.COLOR_BGR2YUV]
cv2.createTrackbar('curcolor', 'color', 0, len(colorspaces), callback)
while True:
index = cv2.getTrackbarPos('curcolor', 'color')
# 颜色空间转化
cvt_img = cv2.cvtColor(img, colorspaces[index])
cv2.imshow('color', img)
key = cv2.waitKey(0)
if key & 0xFf == ord('q'):
break
cv2.destroyAllWindows()
这里运行失败了,不知道为什么,有没有大佬帮忙看一下问题出在哪儿!
D:\pycharm\python3.10.7\python.exe D:\临时\test\CV\1.py
Traceback (most recent call last):
File "D:\临时\test\CV\1.py", line 54, in <module>
index = cv2.getTrackbarPos('curcolor', 'color')
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window_w32.cpp:2581: error: (-27:Null pointer) NULL window: 'color' in function 'cvGetTrackbarPos'
进程已结束,退出代码1