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?
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):