OpenCV Color spaces
Ref: https://docs.opencv.org/master/
BGR, RGB, YUV, HSV 등은 8 bits 3 채널로 픽셀마다 24 bits 값을 갖고, Grayscale은 8 bits 1 채널로 픽셀마다 8 bits 값을 갖습니다.
알파채널이 추가된 RGBA 등은 8 bits 4 채널로 픽셀마다 32 bits 값을 갖습니다.
이미지 배열은 (가로, 세로, 채널) 3 차원 배열로 이루어져있고, 1 채널 이미지의 경우 (가로, 세로) 2 차원 배열로 표현할 수 있습니다.
BGR 3 채널이 기본으로 사용됩니다.
예를 들어 400x400 빨간색 빈 이미지를 생성하고 싶을 때, 아래와 같은 코드를 이용할 수 있습니다.
import cv2 as cv
import numpy as np
image = np.zeros((400,400,3), dtype=np.uint8)
image[:,:,2] = 255
cv.imshow('red', image)
cv.waitKey()
BGR
import cv2 as cv
import numpy as np
bgr_image = np.array([[[255, 0, 0],[ 0,255, 0],[ 0, 0,255]],
[[255,255, 0],[255, 0,255],[ 0,255,255]]],
dtype=np.uint8)
cv.imshow('bgr', bgr_image)
cv.waitKey()
Grayscale
import cv2 as cv
import numpy as np
gray_image = np.array([[ 0,127,255],
[255,127, 0]],
dtype=np.uint8)
cv.imshow('gray', gray_image)
cv.waitKey()
RGB, HSV, HSL 색 공간
- Hue(색상) : 8 bits로 볼때 R=0(0), G=60(120), B=120(240)
- Saturation(채도)
- Value(명도)
- Lightness(밝기)
색 공간(color space) 변환
dst = cv.cvtColor(src, code, dst=None, dstCn=0)
- @brief src 색 공간을 code에 따라 변환한 후, dst로 반환
- @param src: np.ndarray
- @param dstCn: 0 으로 설정할 경우 src와 code에 따라 자동 설정
- @param code
cv.COLOR_BGR2BGRA
= 0cv.COLOR_RGB2RGBA
= COLOR_BGR2BGRAcv.COLOR_BGRA2BGR
= 1cv.COLOR_RGBA2RGB
= COLOR_BGRA2BGRcv.COLOR_BGR2RGBA
= 2cv.COLOR_RGB2BGRA
= COLOR_BGR2RGBAcv.COLOR_RGBA2BGR
= 3cv.COLOR_BGRA2RGB
= COLOR_RGBA2BGRcv.COLOR_BGR2RGB
= 4cv.COLOR_RGB2BGR
= COLOR_BGR2RGBcv.COLOR_BGRA2RGBA
= 5cv.COLOR_RGBA2BGRA
= COLOR_BGRA2RGBAcv.COLOR_BGR2GRAY
= 6cv.COLOR_RGB2GRAY
= 7cv.COLOR_GRAY2BGR
= 8cv.COLOR_GRAY2RGB
= COLOR_GRAY2BGRcv.COLOR_GRAY2BGRA
= 9cv.COLOR_GRAY2RGBA
= COLOR_GRAY2BGRAcv.COLOR_BGRA2GRAY
= 10cv.COLOR_RGBA2GRAY
= 11cv.COLOR_BGR2BGR565
= 12cv.COLOR_RGB2BGR565
= 13cv.COLOR_BGR5652BGR
= 14cv.COLOR_BGR5652RGB
= 15cv.COLOR_BGRA2BGR565
= 16cv.COLOR_RGBA2BGR565
= 17cv.COLOR_BGR5652BGRA
= 18cv.COLOR_BGR5652RGBA
= 19cv.COLOR_GRAY2BGR565
= 20cv.COLOR_BGR5652GRAY
= 21cv.COLOR_BGR2BGR555
= 22cv.COLOR_RGB2BGR555
= 23cv.COLOR_BGR5552BGR
= 24cv.COLOR_BGR5552RGB
= 25cv.COLOR_BGRA2BGR555
= 26cv.COLOR_RGBA2BGR555
= 27cv.COLOR_BGR5552BGRA
= 28cv.COLOR_BGR5552RGBA
= 29cv.COLOR_GRAY2BGR555
= 30cv.COLOR_BGR5552GRAY
= 31cv.COLOR_BGR2XYZ
= 32cv.COLOR_RGB2XYZ
= 33cv.COLOR_XYZ2BGR
= 34cv.COLOR_XYZ2RGB
= 35cv.COLOR_BGR2YCrCb
= 36cv.COLOR_RGB2YCrCb
= 37cv.COLOR_YCrCb2BGR
= 38cv.COLOR_YCrCb2RGB
= 39cv.COLOR_BGR2HSV
= 40cv.COLOR_RGB2HSV
= 41cv.COLOR_BGR2Lab
= 44cv.COLOR_RGB2Lab
= 45cv.COLOR_BGR2Luv
= 50cv.COLOR_RGB2Luv
= 51cv.COLOR_BGR2HLS
= 52cv.COLOR_RGB2HLS
= 53cv.COLOR_HSV2BGR
= 54cv.COLOR_HSV2RGB
= 55cv.COLOR_Lab2BGR
= 56cv.COLOR_Lab2RGB
= 57cv.COLOR_Luv2BGR
= 58cv.COLOR_Luv2RGB
= 59cv.COLOR_HLS2BGR
= 60cv.COLOR_HLS2RGB
= 61cv.COLOR_BGR2HSV_FULL
= 66cv.COLOR_RGB2HSV_FULL
= 67cv.COLOR_BGR2HLS_FULL
= 68cv.COLOR_RGB2HLS_FULL
= 69cv.COLOR_HSV2BGR_FULL
= 70cv.COLOR_HSV2RGB_FULL
= 71cv.COLOR_HLS2BGR_FULL
= 72cv.COLOR_HLS2RGB_FULL
= 73cv.COLOR_LBGR2Lab
= 74cv.COLOR_LRGB2Lab
= 75cv.COLOR_LBGR2Luv
= 76cv.COLOR_LRGB2Luv
= 77cv.COLOR_Lab2LBGR
= 78cv.COLOR_Lab2LRGB
= 79cv.COLOR_Luv2LBGR
= 80cv.COLOR_Luv2LRGB
= 81cv.COLOR_BGR2YUV
= 82cv.COLOR_RGB2YUV
= 83cv.COLOR_YUV2BGR
= 84cv.COLOR_YUV2RGB
= 85cv.COLOR_YUV2RGB_NV12
= 90cv.COLOR_YUV2BGR_NV12
= 91cv.COLOR_YUV2RGB_NV21
= 92cv.COLOR_YUV2BGR_NV21
= 93cv.COLOR_YUV420sp2RGB
= COLOR_YUV2RGB_NV21cv.COLOR_YUV420sp2BGR
= COLOR_YUV2BGR_NV21cv.COLOR_YUV2RGBA_NV12
= 94cv.COLOR_YUV2BGRA_NV12
= 95cv.COLOR_YUV2RGBA_NV21
= 96cv.COLOR_YUV2BGRA_NV21
= 97cv.COLOR_YUV420sp2RGBA
= COLOR_YUV2RGBA_NV21cv.COLOR_YUV420sp2BGRA
= COLOR_YUV2BGRA_NV21cv.COLOR_YUV2RGB_YV12
= 98cv.COLOR_YUV2BGR_YV12
= 99cv.COLOR_YUV2RGB_IYUV
= 100cv.COLOR_YUV2BGR_IYUV
= 101cv.COLOR_YUV2RGB_I420
= COLOR_YUV2RGB_IYUVcv.COLOR_YUV2BGR_I420
= COLOR_YUV2BGR_IYUVcv.COLOR_YUV420p2RGB
= COLOR_YUV2RGB_YV12cv.COLOR_YUV420p2BGR
= COLOR_YUV2BGR_YV12cv.COLOR_YUV2RGBA_YV12
= 102cv.COLOR_YUV2BGRA_YV12
= 103cv.COLOR_YUV2RGBA_IYUV
= 104cv.COLOR_YUV2BGRA_IYUV
= 105cv.COLOR_YUV2RGBA_I420
= COLOR_YUV2RGBA_IYUVcv.COLOR_YUV2BGRA_I420
= COLOR_YUV2BGRA_IYUVcv.COLOR_YUV420p2RGBA
= COLOR_YUV2RGBA_YV12cv.COLOR_YUV420p2BGRA
= COLOR_YUV2BGRA_YV12cv.COLOR_YUV2GRAY_420
= 106cv.COLOR_YUV2GRAY_NV21
= COLOR_YUV2GRAY_420cv.COLOR_YUV2GRAY_NV12
= COLOR_YUV2GRAY_420cv.COLOR_YUV2GRAY_YV12
= COLOR_YUV2GRAY_420cv.COLOR_YUV2GRAY_IYUV
= COLOR_YUV2GRAY_420cv.COLOR_YUV2GRAY_I420
= COLOR_YUV2GRAY_420cv.COLOR_YUV420sp2GRAY
= COLOR_YUV2GRAY_420cv.COLOR_YUV420p2GRAY
= COLOR_YUV2GRAY_420cv.COLOR_YUV2RGB_UYVY
= 107cv.COLOR_YUV2BGR_UYVY
= 108cv.COLOR_YUV2RGB_Y422
= COLOR_YUV2RGB_UYVYcv.COLOR_YUV2BGR_Y422
= COLOR_YUV2BGR_UYVYcv.COLOR_YUV2RGB_UYNV
= COLOR_YUV2RGB_UYVYcv.COLOR_YUV2BGR_UYNV
= COLOR_YUV2BGR_UYVYcv.COLOR_YUV2RGBA_UYVY
= 111cv.COLOR_YUV2BGRA_UYVY
= 112cv.COLOR_YUV2RGBA_Y422
= COLOR_YUV2RGBA_UYVYcv.COLOR_YUV2BGRA_Y422
= COLOR_YUV2BGRA_UYVYcv.COLOR_YUV2RGBA_UYNV
= COLOR_YUV2RGBA_UYVYcv.COLOR_YUV2BGRA_UYNV
= COLOR_YUV2BGRA_UYVYcv.COLOR_YUV2RGB_YUY2
= 115cv.COLOR_YUV2BGR_YUY2
= 116cv.COLOR_YUV2RGB_YVYU
= 117cv.COLOR_YUV2BGR_YVYU
= 118cv.COLOR_YUV2RGB_YUYV
= COLOR_YUV2RGB_YUY2cv.COLOR_YUV2BGR_YUYV
= COLOR_YUV2BGR_YUY2cv.COLOR_YUV2RGB_YUNV
= COLOR_YUV2RGB_YUY2cv.COLOR_YUV2BGR_YUNV
= COLOR_YUV2BGR_YUY2cv.COLOR_YUV2RGBA_YUY2
= 119cv.COLOR_YUV2BGRA_YUY2
= 120cv.COLOR_YUV2RGBA_YVYU
= 121cv.COLOR_YUV2BGRA_YVYU
= 122cv.COLOR_YUV2RGBA_YUYV
= COLOR_YUV2RGBA_YUY2cv.COLOR_YUV2BGRA_YUYV
= COLOR_YUV2BGRA_YUY2cv.COLOR_YUV2RGBA_YUNV
= COLOR_YUV2RGBA_YUY2cv.COLOR_YUV2BGRA_YUNV
= COLOR_YUV2BGRA_YUY2cv.COLOR_YUV2GRAY_UYVY
= 123cv.COLOR_YUV2GRAY_YUY2
= 124cv.COLOR_YUV2GRAY_Y422
= COLOR_YUV2GRAY_UYVYcv.COLOR_YUV2GRAY_UYNV
= COLOR_YUV2GRAY_UYVYcv.COLOR_YUV2GRAY_YVYU
= COLOR_YUV2GRAY_YUY2cv.COLOR_YUV2GRAY_YUYV
= COLOR_YUV2GRAY_YUY2cv.COLOR_YUV2GRAY_YUNV
= COLOR_YUV2GRAY_YUY2cv.COLOR_RGBA2mRGBA
= 125cv.COLOR_mRGBA2RGBA
= 126cv.COLOR_RGB2YUV_I420
= 127cv.COLOR_BGR2YUV_I420
= 128cv.COLOR_RGB2YUV_IYUV
= COLOR_RGB2YUV_I420cv.COLOR_BGR2YUV_IYUV
= COLOR_BGR2YUV_I420cv.COLOR_RGBA2YUV_I420
= 129cv.COLOR_BGRA2YUV_I420
= 130cv.COLOR_RGBA2YUV_IYUV
= COLOR_RGBA2YUV_I420cv.COLOR_BGRA2YUV_IYUV
= COLOR_BGRA2YUV_I420cv.COLOR_RGB2YUV_YV12
= 131cv.COLOR_BGR2YUV_YV12
= 132cv.COLOR_RGBA2YUV_YV12
= 133cv.COLOR_BGRA2YUV_YV12
= 134cv.COLOR_BayerBG2BGR
= 46cv.COLOR_BayerGB2BGR
= 47cv.COLOR_BayerRG2BGR
= 48cv.COLOR_BayerGR2BGR
= 49cv.COLOR_BayerBG2RGB
= COLOR_BayerRG2BGRcv.COLOR_BayerGB2RGB
= COLOR_BayerGR2BGRcv.COLOR_BayerRG2RGB
= COLOR_BayerBG2BGRcv.COLOR_BayerGR2RGB
= COLOR_BayerGB2BGRcv.COLOR_BayerBG2GRAY
= 86cv.COLOR_BayerGB2GRAY
= 87cv.COLOR_BayerRG2GRAY
= 88cv.COLOR_BayerGR2GRAY
= 89cv.COLOR_BayerBG2BGR_VNG
= 62cv.COLOR_BayerGB2BGR_VNG
= 63cv.COLOR_BayerRG2BGR_VNG
= 64cv.COLOR_BayerGR2BGR_VNG
= 65cv.COLOR_BayerBG2RGB_VNG
= COLOR_BayerRG2BGR_VNGcv.COLOR_BayerGB2RGB_VNG
= COLOR_BayerGR2BGR_VNGcv.COLOR_BayerRG2RGB_VNG
= COLOR_BayerBG2BGR_VNGcv.COLOR_BayerGR2RGB_VNG
= COLOR_BayerGB2BGR_VNGcv.COLOR_BayerBG2BGR_EA
= 135cv.COLOR_BayerGB2BGR_EA
= 136cv.COLOR_BayerRG2BGR_EA
= 137cv.COLOR_BayerGR2BGR_EA
= 138cv.COLOR_BayerBG2RGB_EA
= COLOR_BayerRG2BGR_EAcv.COLOR_BayerGB2RGB_EA
= COLOR_BayerGR2BGR_EAcv.COLOR_BayerRG2RGB_EA
= COLOR_BayerBG2BGR_EAcv.COLOR_BayerGR2RGB_EA
= COLOR_BayerGB2BGR_EAcv.COLOR_BayerBG2BGRA
= 139cv.COLOR_BayerGB2BGRA
= 140cv.COLOR_BayerRG2BGRA
= 141cv.COLOR_BayerGR2BGRA
= 142cv.COLOR_BayerBG2RGBA
= COLOR_BayerRG2BGRAcv.COLOR_BayerGB2RGBA
= COLOR_BayerGR2BGRAcv.COLOR_BayerRG2RGBA
= COLOR_BayerBG2BGRAcv.COLOR_BayerGR2RGBA
= COLOR_BayerGB2BGRAcv.COLOR_COLORCVT_MAX
= 143