본문 바로가기
Programming (프로그래밍)/Error (오류 해결 모음집)

[OpenCV] OpenCV와 Matplotlib 색상 차이: BGR vs RGB 문제 해결

by 김조이1 2025. 2. 2.
728x90

OpenCV에서 이미지를 불러와 Matplotlib으로 출력할 때, 색상이 이상하게 표시되는 문제를 경험한 적이 있을 것이다.

이는 OpenCV와 Matplotlib이 색상 채널을 다르게 해석하기 때문이다.

  • OpenCV: BGR(Blue, Green, Red) 사용
  • Matplotlib: RGB(Red, Green, Blue) 사용

따라서, OpenCV에서 불러온 이미지를 그대로 plt.imshow(img)로 출력하면 파란색과 빨간색이 뒤바뀌는 현상이 발생한다.

출처: https://forums.developer.nvidia.com/t/how-to-changing-color-space/191466

 

이 문제를 해결하려면 cv2.cvtColor()를 사용해 BGR을 RGB로 변환하면 된다.

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("image.jpg")  

fix_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # BGR → RGB 변환

plt.imshow(fix_img)  
plt.show()
반응형