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โˆ˜^{\circ}), G=60(120โˆ˜^{\circ}), B=120(240โˆ˜^{\circ})
  • 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 = 0
    • cv.COLOR_RGB2RGBA = COLOR_BGR2BGRA
    • cv.COLOR_BGRA2BGR = 1
    • cv.COLOR_RGBA2RGB = COLOR_BGRA2BGR
    • cv.COLOR_BGR2RGBA = 2
    • cv.COLOR_RGB2BGRA = COLOR_BGR2RGBA
    • cv.COLOR_RGBA2BGR = 3
    • cv.COLOR_BGRA2RGB = COLOR_RGBA2BGR
    • cv.COLOR_BGR2RGB = 4
    • cv.COLOR_RGB2BGR = COLOR_BGR2RGB
    • cv.COLOR_BGRA2RGBA = 5
    • cv.COLOR_RGBA2BGRA = COLOR_BGRA2RGBA
    • cv.COLOR_BGR2GRAY = 6
    • cv.COLOR_RGB2GRAY = 7
    • cv.COLOR_GRAY2BGR = 8
    • cv.COLOR_GRAY2RGB = COLOR_GRAY2BGR
    • cv.COLOR_GRAY2BGRA = 9
    • cv.COLOR_GRAY2RGBA = COLOR_GRAY2BGRA
    • cv.COLOR_BGRA2GRAY = 10
    • cv.COLOR_RGBA2GRAY = 11
    • cv.COLOR_BGR2BGR565 = 12
    • cv.COLOR_RGB2BGR565 = 13
    • cv.COLOR_BGR5652BGR = 14
    • cv.COLOR_BGR5652RGB = 15
    • cv.COLOR_BGRA2BGR565 = 16
    • cv.COLOR_RGBA2BGR565 = 17
    • cv.COLOR_BGR5652BGRA = 18
    • cv.COLOR_BGR5652RGBA = 19
    • cv.COLOR_GRAY2BGR565 = 20
    • cv.COLOR_BGR5652GRAY = 21
    • cv.COLOR_BGR2BGR555 = 22
    • cv.COLOR_RGB2BGR555 = 23
    • cv.COLOR_BGR5552BGR = 24
    • cv.COLOR_BGR5552RGB = 25
    • cv.COLOR_BGRA2BGR555 = 26
    • cv.COLOR_RGBA2BGR555 = 27
    • cv.COLOR_BGR5552BGRA = 28
    • cv.COLOR_BGR5552RGBA = 29
    • cv.COLOR_GRAY2BGR555 = 30
    • cv.COLOR_BGR5552GRAY = 31
    • cv.COLOR_BGR2XYZ = 32
    • cv.COLOR_RGB2XYZ = 33
    • cv.COLOR_XYZ2BGR = 34
    • cv.COLOR_XYZ2RGB = 35
    • cv.COLOR_BGR2YCrCb = 36
    • cv.COLOR_RGB2YCrCb = 37
    • cv.COLOR_YCrCb2BGR = 38
    • cv.COLOR_YCrCb2RGB = 39
    • cv.COLOR_BGR2HSV = 40
    • cv.COLOR_RGB2HSV = 41
    • cv.COLOR_BGR2Lab = 44
    • cv.COLOR_RGB2Lab = 45
    • cv.COLOR_BGR2Luv = 50
    • cv.COLOR_RGB2Luv = 51
    • cv.COLOR_BGR2HLS = 52
    • cv.COLOR_RGB2HLS = 53
    • cv.COLOR_HSV2BGR = 54
    • cv.COLOR_HSV2RGB = 55
    • cv.COLOR_Lab2BGR = 56
    • cv.COLOR_Lab2RGB = 57
    • cv.COLOR_Luv2BGR = 58
    • cv.COLOR_Luv2RGB = 59
    • cv.COLOR_HLS2BGR = 60
    • cv.COLOR_HLS2RGB = 61
    • cv.COLOR_BGR2HSV_FULL = 66
    • cv.COLOR_RGB2HSV_FULL = 67
    • cv.COLOR_BGR2HLS_FULL = 68
    • cv.COLOR_RGB2HLS_FULL = 69
    • cv.COLOR_HSV2BGR_FULL = 70
    • cv.COLOR_HSV2RGB_FULL = 71
    • cv.COLOR_HLS2BGR_FULL = 72
    • cv.COLOR_HLS2RGB_FULL = 73
    • cv.COLOR_LBGR2Lab = 74
    • cv.COLOR_LRGB2Lab = 75
    • cv.COLOR_LBGR2Luv = 76
    • cv.COLOR_LRGB2Luv = 77
    • cv.COLOR_Lab2LBGR = 78
    • cv.COLOR_Lab2LRGB = 79
    • cv.COLOR_Luv2LBGR = 80
    • cv.COLOR_Luv2LRGB = 81
    • cv.COLOR_BGR2YUV = 82
    • cv.COLOR_RGB2YUV = 83
    • cv.COLOR_YUV2BGR = 84
    • cv.COLOR_YUV2RGB = 85
    • cv.COLOR_YUV2RGB_NV12 = 90
    • cv.COLOR_YUV2BGR_NV12 = 91
    • cv.COLOR_YUV2RGB_NV21 = 92
    • cv.COLOR_YUV2BGR_NV21 = 93
    • cv.COLOR_YUV420sp2RGB = COLOR_YUV2RGB_NV21
    • cv.COLOR_YUV420sp2BGR = COLOR_YUV2BGR_NV21
    • cv.COLOR_YUV2RGBA_NV12 = 94
    • cv.COLOR_YUV2BGRA_NV12 = 95
    • cv.COLOR_YUV2RGBA_NV21 = 96
    • cv.COLOR_YUV2BGRA_NV21 = 97
    • cv.COLOR_YUV420sp2RGBA = COLOR_YUV2RGBA_NV21
    • cv.COLOR_YUV420sp2BGRA = COLOR_YUV2BGRA_NV21
    • cv.COLOR_YUV2RGB_YV12 = 98
    • cv.COLOR_YUV2BGR_YV12 = 99
    • cv.COLOR_YUV2RGB_IYUV = 100
    • cv.COLOR_YUV2BGR_IYUV = 101
    • cv.COLOR_YUV2RGB_I420 = COLOR_YUV2RGB_IYUV
    • cv.COLOR_YUV2BGR_I420 = COLOR_YUV2BGR_IYUV
    • cv.COLOR_YUV420p2RGB = COLOR_YUV2RGB_YV12
    • cv.COLOR_YUV420p2BGR = COLOR_YUV2BGR_YV12
    • cv.COLOR_YUV2RGBA_YV12 = 102
    • cv.COLOR_YUV2BGRA_YV12 = 103
    • cv.COLOR_YUV2RGBA_IYUV = 104
    • cv.COLOR_YUV2BGRA_IYUV = 105
    • cv.COLOR_YUV2RGBA_I420 = COLOR_YUV2RGBA_IYUV
    • cv.COLOR_YUV2BGRA_I420 = COLOR_YUV2BGRA_IYUV
    • cv.COLOR_YUV420p2RGBA = COLOR_YUV2RGBA_YV12
    • cv.COLOR_YUV420p2BGRA = COLOR_YUV2BGRA_YV12
    • cv.COLOR_YUV2GRAY_420 = 106
    • cv.COLOR_YUV2GRAY_NV21 = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV2GRAY_NV12 = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV2GRAY_YV12 = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV2GRAY_IYUV = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV2GRAY_I420 = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV420sp2GRAY = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV420p2GRAY = COLOR_YUV2GRAY_420
    • cv.COLOR_YUV2RGB_UYVY = 107
    • cv.COLOR_YUV2BGR_UYVY = 108
    • cv.COLOR_YUV2RGB_Y422 = COLOR_YUV2RGB_UYVY
    • cv.COLOR_YUV2BGR_Y422 = COLOR_YUV2BGR_UYVY
    • cv.COLOR_YUV2RGB_UYNV = COLOR_YUV2RGB_UYVY
    • cv.COLOR_YUV2BGR_UYNV = COLOR_YUV2BGR_UYVY
    • cv.COLOR_YUV2RGBA_UYVY = 111
    • cv.COLOR_YUV2BGRA_UYVY = 112
    • cv.COLOR_YUV2RGBA_Y422 = COLOR_YUV2RGBA_UYVY
    • cv.COLOR_YUV2BGRA_Y422 = COLOR_YUV2BGRA_UYVY
    • cv.COLOR_YUV2RGBA_UYNV = COLOR_YUV2RGBA_UYVY
    • cv.COLOR_YUV2BGRA_UYNV = COLOR_YUV2BGRA_UYVY
    • cv.COLOR_YUV2RGB_YUY2 = 115
    • cv.COLOR_YUV2BGR_YUY2 = 116
    • cv.COLOR_YUV2RGB_YVYU = 117
    • cv.COLOR_YUV2BGR_YVYU = 118
    • cv.COLOR_YUV2RGB_YUYV = COLOR_YUV2RGB_YUY2
    • cv.COLOR_YUV2BGR_YUYV = COLOR_YUV2BGR_YUY2
    • cv.COLOR_YUV2RGB_YUNV = COLOR_YUV2RGB_YUY2
    • cv.COLOR_YUV2BGR_YUNV = COLOR_YUV2BGR_YUY2
    • cv.COLOR_YUV2RGBA_YUY2 = 119
    • cv.COLOR_YUV2BGRA_YUY2 = 120
    • cv.COLOR_YUV2RGBA_YVYU = 121
    • cv.COLOR_YUV2BGRA_YVYU = 122
    • cv.COLOR_YUV2RGBA_YUYV = COLOR_YUV2RGBA_YUY2
    • cv.COLOR_YUV2BGRA_YUYV = COLOR_YUV2BGRA_YUY2
    • cv.COLOR_YUV2RGBA_YUNV = COLOR_YUV2RGBA_YUY2
    • cv.COLOR_YUV2BGRA_YUNV = COLOR_YUV2BGRA_YUY2
    • cv.COLOR_YUV2GRAY_UYVY = 123
    • cv.COLOR_YUV2GRAY_YUY2 = 124
    • cv.COLOR_YUV2GRAY_Y422 = COLOR_YUV2GRAY_UYVY
    • cv.COLOR_YUV2GRAY_UYNV = COLOR_YUV2GRAY_UYVY
    • cv.COLOR_YUV2GRAY_YVYU = COLOR_YUV2GRAY_YUY2
    • cv.COLOR_YUV2GRAY_YUYV = COLOR_YUV2GRAY_YUY2
    • cv.COLOR_YUV2GRAY_YUNV = COLOR_YUV2GRAY_YUY2
    • cv.COLOR_RGBA2mRGBA = 125
    • cv.COLOR_mRGBA2RGBA = 126
    • cv.COLOR_RGB2YUV_I420 = 127
    • cv.COLOR_BGR2YUV_I420 = 128
    • cv.COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420
    • cv.COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420
    • cv.COLOR_RGBA2YUV_I420 = 129
    • cv.COLOR_BGRA2YUV_I420 = 130
    • cv.COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420
    • cv.COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420
    • cv.COLOR_RGB2YUV_YV12 = 131
    • cv.COLOR_BGR2YUV_YV12 = 132
    • cv.COLOR_RGBA2YUV_YV12 = 133
    • cv.COLOR_BGRA2YUV_YV12 = 134
    • cv.COLOR_BayerBG2BGR = 46
    • cv.COLOR_BayerGB2BGR = 47
    • cv.COLOR_BayerRG2BGR = 48
    • cv.COLOR_BayerGR2BGR = 49
    • cv.COLOR_BayerBG2RGB = COLOR_BayerRG2BGR
    • cv.COLOR_BayerGB2RGB = COLOR_BayerGR2BGR
    • cv.COLOR_BayerRG2RGB = COLOR_BayerBG2BGR
    • cv.COLOR_BayerGR2RGB = COLOR_BayerGB2BGR
    • cv.COLOR_BayerBG2GRAY = 86
    • cv.COLOR_BayerGB2GRAY = 87
    • cv.COLOR_BayerRG2GRAY = 88
    • cv.COLOR_BayerGR2GRAY = 89
    • cv.COLOR_BayerBG2BGR_VNG = 62
    • cv.COLOR_BayerGB2BGR_VNG = 63
    • cv.COLOR_BayerRG2BGR_VNG = 64
    • cv.COLOR_BayerGR2BGR_VNG = 65
    • cv.COLOR_BayerBG2RGB_VNG = COLOR_BayerRG2BGR_VNG
    • cv.COLOR_BayerGB2RGB_VNG = COLOR_BayerGR2BGR_VNG
    • cv.COLOR_BayerRG2RGB_VNG = COLOR_BayerBG2BGR_VNG
    • cv.COLOR_BayerGR2RGB_VNG = COLOR_BayerGB2BGR_VNG
    • cv.COLOR_BayerBG2BGR_EA = 135
    • cv.COLOR_BayerGB2BGR_EA = 136
    • cv.COLOR_BayerRG2BGR_EA = 137
    • cv.COLOR_BayerGR2BGR_EA = 138
    • cv.COLOR_BayerBG2RGB_EA = COLOR_BayerRG2BGR_EA
    • cv.COLOR_BayerGB2RGB_EA = COLOR_BayerGR2BGR_EA
    • cv.COLOR_BayerRG2RGB_EA = COLOR_BayerBG2BGR_EA
    • cv.COLOR_BayerGR2RGB_EA = COLOR_BayerGB2BGR_EA
    • cv.COLOR_BayerBG2BGRA = 139
    • cv.COLOR_BayerGB2BGRA = 140
    • cv.COLOR_BayerRG2BGRA = 141
    • cv.COLOR_BayerGR2BGRA = 142
    • cv.COLOR_BayerBG2RGBA = COLOR_BayerRG2BGRA
    • cv.COLOR_BayerGB2RGBA = COLOR_BayerGR2BGRA
    • cv.COLOR_BayerRG2RGBA = COLOR_BayerBG2BGRA
    • cv.COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA
    • cv.COLOR_COLORCVT_MAX = 143
Last updated on