OpenCV 이미지 로딩시 BGR을 RGB로 변환해야 한다.

왜?

 

OpenCV에서 이미지 로딩은 imread(‘파일명’)을 이용하고, imread(‘파일명’)은 파일을 읽어 넘파이 array로 변환한다.
imread()를 이용하여 이미지를 로딩할 때, 가장 주의해야 할 점은 OpenCV가 이미지를 RGB 형태가 아닌 BGR 형태로 로딩하기 때문에 색감이 원본 이미지와 다르게 나타난다는 것이다.

 


OpenCV에서 imread(‘파일명’)을 이용하여 로딩된 이미지 배열은 BGR 형태의 배열이므로 이를 RGB 형태의 배열로 변환하려면

cvtColor(이미지 배열, cv2.COLOR_BGR2RGB)를 이용해야 한다.

 

import cv2
import matplotlib.pyplot as plt
bgr_img_array = cv2.imread(‘파일명’)
rgb_img_array = cv2.cvtColor(bgr_img_array, cv2.COLOR_BGR2RGB) 
plt.imshow(rgb_img_array)

 


OpenCV에서 메모리에 있는 이미지 배열을 다시 파일에 저장하려면 imwrite(‘출력파일명‘, 이미지배열)을 이용한다.

이때, imread( )로 인해 BGR형태로 되어 있는 이미지 배열을 다시 RGB 형태로 변환하여 저장한다.

따라서 imread( )로 읽고, imwrite( )로 출력한 이미지 파일은 다시 RGB 형태의 파일이 된다.

import cv2
import matplotlib.pyplot as plt
img_array = cv2.imread(‘파일명’) 
cv2.imwrite(‘출력파일명’, img_arrary)

'🖼 Computer Vision > CNN' 카테고리의 다른 글

CNN - AlexNet  (0) 2022.03.31
CNN - Image data scaling preprocessing  (0) 2022.03.27
CNN - Data Augmentation  (0) 2022.03.04
CNN - Global Average Pooling  (0) 2022.03.04
CNN - Batch Normalization  (0) 2022.03.03
복사했습니다!