OpenCV-Python

OpenCV Python 이미지 색상 변환

rkftks22 2021. 8. 20. 11:30

OpenCV 색상 변환을 다루겠습니다.

 

이미지 색상 변환 : cv2.cvtColor(src, code)

이미지를 한 색상 공간에서 다른 색상 공간으로 변환합니다.
OpenCV는 이미지를 읽어 들일 때 BGR 순으로 읽어 들입니다.
그러므로 여러분이 알고 있는 빛의 삼원색 RGB로 바꿀 경우
OpenCV에선 빨간색과 파란색 성분이 바뀌어 이상하게 보입니다.
import cv2

img = cv2.imread("imgs/dog.jpg")
img_cvt = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.imshow("img", img)
cv2.imshow("img_cvt", img_cvt)
cv2.waitKey()
cv2.destroyAllWindows()

출력 결과
BGR -> RGB 변환


src : 입력으로 넣을 이미지

 

code : 색 공간 변환 코드

  • cv2.COLOR_BGR2BGRA
  • cv2.COLOR_RGB2RGBA
  • cv2.COLOR_BGRA2BGR
  • cv2.COLOR_RGBA2RGB
  • cv2.COLOR_BGR2RGB
  • cv2.COLOR_BGR2GRAY
  • cv2.COLOR_BGR2BGR565
  • cv2.COLOR_GRAY2BGR565
  • cv2.COLOR_BGR2BGR555
  • cv2.COLOR_BG2XYZ
  • cv2.COLOR_BGR2YCrCb
  • cv2.COLOR_BG2HSV
  • cv2.COLOR_BGR2Lab
  • cv2.COLOR_BGR2Luv
  • cv2.COLOR_BGR2HLS
  • cv2.COLOR_BGR2YUV
BGR : BLUE, GREEN, RED
BGRA : BGR + ALPHA(투명도)
RGB : RED, GREEN, BLUE
RGBA : RGB + ALPHA(투명도)
GRAY : 회색조 이미지
BGR565 : BGR 16비트 이미지
XYZ : X, Y, Z채널 CIE XYZ(CIE 1931 색공간)
YCrCb : Y(휘도 : 밝기), Cb/Cr(색채, 크로마 : 색상 성분) 
HSV : Hue(색상), Saturation(채도), Value(밝기)으로 변환
Lab : CIE Lab으로 변환 : L(밝기), A: RED-GREEN 색상 정도, B : YELLOW-BLUE 색상 정도
Luv : CIE Luv으로 변환
HLS : Hue(색상), Lightness(밝기), Saturation(채도)
YUV : Y(밝기), U(밝기와 파란색과의 색상 차), V(밝기와 빨간색과의 색상 차)

 

이외에도 무수히 많은 code들이 있습니다. 궁금하신 경우 이곳에서 확인해보시기 바랍니다. 중간중간 설명이 첨부되어있는 것들이 있는데 누르시면 색상에 대한 수식들도 나옵니다. 

https://docs.opencv.org/master/d8/d01/group__imgproc__color__conversions.html#ga4e0972be5de079fed4e3a10e24ef5ef0

 

 

OpenCV: Color Space Conversions

enum  cv::ColorConversionCodes {   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_R

docs.opencv.org