본문 바로가기
ML & DL/OpenCV

[OpenCV] BRG 이미지를 RGB 이미지로 변환하기

by 홍월이_ 2022. 12. 9.

아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.

'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.

댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.

감사합니다.


시각화/OpenCV 짤막 지식

저장된 이미지를 파이썬에서 OpenCV를 사용해서 불러오면 기존 이미지와 색이 바뀌게 된다.

import cv2
img_data = cv2.imread('fig1.jpg')

# 이미지를 화면에 출력
plt.imshow(img_data)
plt.grid(False)
plt.axis('off')
plt.show()
 

색이 바뀌어 보이는 이유는, 컬러 사진의 경우

OpenCV에서는 'BRG' 순으로 저장을 하는데

matplotlib 에서는 'RGB' 순으로 색을 저장하기 때문이다.

따라서 BRG를 RGB로 바꾸어 주면 저장된 색으로 이미지를 볼 수 있게 된다.

 

1. cvtColor 사용

아래처럼 RGB 변환 코드인 'cvtColor' 를 추가해주면 이미지 데이터를 제대로 된 색으로 볼 수 있다.

import cv2
img_data = cv2.imread('fig1.jpg')

# BRG to RGB 변환
RGB_img_data = cv2.cvtColor(img_data, cv2.COLOR_BGR2RGB)

# 이미지를 화면에 출력
plt.imshow(RGB_img_data)
plt.grid(False)
plt.axis('off')
plt.show()
 

 

2. Numpy 배열 조작

이미지의 numpy 배열을 직접 조작하여 색 변환도 가능하다.

import cv2
img_data = cv2.imread('fig1.jpg')

# 이미지의 numpy 배열 조작
img_np = img_data[...,::-1]

# 이미지를 화면에 출력
plt.imshow(img_np)
plt.grid(False)
plt.axis('off')
plt.show()
 

 

 

 

번외편

앞에서 말씀드린 'cvtColor' 를 활용하면 이미지를 흑백사진으로 변환도 가능하다.

import cv
img_data = cv2.imread('fig1.jpg')

# Gray 타입으로 변환
RGB_img_data = cv2.cvtColor(img_data, cv2.COLOR_BGR2GRAY)

# 이미지 불러올 때, cmap='gray' 추가
plt.imshow(RGB_img_data, cmap='gray')

# 이미지를 화면에 출력
plt.grid(False)
plt.axis('off')
plt.show()
 

cvtColor에 cv2.COLOR_BRG2GRAY 를 입력하고,

imshow 부분에서 cmap='gray' 를 추가해주면 출력 결과가 흑백으로만 이루어진 이미지를 볼 수 있다.

 

 

 

 

 

 

...끝!

 

 

댓글