如何将BGRA色彩空间中的图像转换为HSV和BGRA到YCbCR?我只知道BGR的转换而不是BGRA。方法是不同还是相同?
hsv_image = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
ycrcb_image = cv2.cvtColor(frame, cv2.COLOR_BGR2YCrCb)
非常感谢您的帮助。
答案 0 :(得分:2)
HSV和YCbCr都不包含透明平面,因此转换唯一可以做的就是忽略它。事实证明(在完成实施之后),cvtColor
接受3和4通道输入图像用于那些转换方法,并正确忽略第4个(透明度)(如果存在)。
验证:
的小脚本import cv2
a = cv2.imread('car_1.png')
b = cv2.cvtColor(a, cv2.COLOR_BGR2BGRA)
c = b.copy()
c[:,:,3] = 0
aa = cv2.cvtColor(a, cv2.COLOR_BGR2HSV)
bb = cv2.cvtColor(b, cv2.COLOR_BGR2HSV)
cc = cv2.cvtColor(c, cv2.COLOR_BGR2HSV)
print (aa == bb).all()
print (aa == cc).all()
打印True
和True
。
BGR也是如此 - >的YCrCb