Convert RGB image to YUV and YCbCr color space image in Opencv Python

Tharani Gnanasegaram picture Tharani Gnanasegaram · Jan 6, 2018 · Viewed 9.6k times · Source

Can anyone help me to convert an RGB colour space image to YUV colour space image and to YCbCr colour space image using opencv Python?

Answer

Kinght 金 picture Kinght 金 · Jan 6, 2018

Use cv2.cvtColor(src, code) to convert Color-Space, the code starts with COLOR_.

You can use this to look for the color code.

import cv2
## get all color codes
codes = [x for x in dir(cv2) if x.startswith("COLOR_")]

## print first three color codes
print(codes[:3])
# ['COLOR_BAYER_BG2BGR', 'COLOR_BAYER_BG2BGRA', 'COLOR_BAYER_BG2BGR_EA']

## print all color codes
print(codes)

If you read the image into BGR space, then use cv2.COLOR_BGR2YUV and cv2.COLOR_BGR2YCrCb:

#cv2.COLOR_BGR2YUV
#cv2.COLOR_BGR2YCrCb

img = cv2.imread("test.png")
yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
cv2.imwrite("yuv.png", yuv)

If you read the image into RGB space, then use cv2.COLOR_RGB2YUV and cv2.COLOR_RGB2YCrCb.


Here is an example image(in BGR-HSV-YUV-YCRCB color spaces):

enter image description here