내가 믿기 때문에 OpenCV는 BGR 색상 공간의 이미지를 읽고 일반적으로 다음과 같이 RGB로 다시 변환해야합니다.
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
그러나 단순히 이미지를 읽고 표시하려고하면 색상이 괜찮아 보입니다 (BGR을 RGB로 변환 할 필요가 없음).
img_bgr = cv2.imread(image_path)
cv2.imshow('BGR Image',img_bgr)
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
cv2.imshow('RGB Image',img_rgb )
cv2.waitkey(0)
그렇다면 imshow ()
가 함수 내에서 색상 공간을 자동으로 변경합니까 (BGR에서 RGB로) 아니면 색상 공간이 BGR이 계속 되었습니까?
해결 방법
BGR과 RGB는 색상 공간이 아니라 다른 색상 채널의 순서에 대한 규칙 일뿐입니다. cv2.cvtColor (img, cv2.COLOR_BGR2RGB)
는 어떤 계산도 수행하지 않으며 (HSV와 같은 변환과 같은) 순서를 전환합니다. 모든 순서가 유효합니다. 실제로 세 가지 값 (빨간색, 녹색 및 파란색)이 누적되어 하나의 픽셀을 형성합니다. 디스플레이에 주문한 순서를 알려 주면 원하는 방식으로 배열 할 수 있습니다.
OpenCV imread
, imwrite
및 imshow
는 실제로 모두 BGR 순서로 작동하므로 이미지를 읽을 때 순서를 변경할 필요가 없습니다. cv2.imread
를 입력 한 다음 cv2.imshow
로 표시하려고합니다.
BGR은 OpenCV 전체에서 일관되게 사용되지만 대부분의 다른 이미지 처리 라이브러리는 RGB 순서를 사용합니다. matplotlib
의 imshow
를 사용하고 싶지만 OpenCV로 이미지를 읽으려면 BGR에서 RGB로 변환해야합니다.
참조 페이지 https://stackoverflow.com/questions/50963283
'파이썬' 카테고리의 다른 글
파이썬 Keras 멀티 클래스 모델에서 혼동 행렬 얻기 (0) | 2020.10.11 |
---|---|
파이썬 Pytesseract : "TesseractNotFound 오류 : tesseract가 설치되지 않았거나 경로에 없습니다.", 어떻게 해결합니까? (0) | 2020.10.11 |
파이썬 Spyder에 Pip 설치 (0) | 2020.10.11 |
파이썬 Python-3D 포인트 클라우드 표시 (0) | 2020.10.11 |
파이썬 unicode (). decode ( 'utf-8', 'ignore') UnicodeEncodeError 발생 (0) | 2020.10.11 |
댓글