问题
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?
回答1:
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):
来源:https://stackoverflow.com/questions/48125095/convert-rgb-image-to-yuv-and-ycbcr-color-space-image-in-opencv-python