在Python中使用OpenCv转换ColorSpaces

时间:2018-03-28 16:51:56

标签: python opencv hsv color-space bgr

如何将BGRA色彩空间中的图像转换为HSV和BGRA到YCbCR?我只知道BGR的转换而不是BGRA。方法是不同还是相同?

hsv_image = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
ycrcb_image = cv2.cvtColor(frame, cv2.COLOR_BGR2YCrCb)

非常感谢您的帮助。

1 个答案:

答案 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()

打印TrueTrue

BGR也是如此 - >的YCrCb