📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다.


목차

  1. OpenCV
  2. OpenCV 이미지 로딩
  3. BGR을 RGB로 변환하기
  4. OpenCV 이미지 배열을 파일에 쓰기
  5. OpenCV로 이미지 로드하기
  6. 반환된 BGR image Numpy array 시각화 하기
  7. BGR에서 RGB로 변환하기

OpenCV 

  1. 오픈소스 기반의 최고 인기 컴퓨터 비전 라이브러리
  2. 컴퓨터 비전 기능 일반화에 크게 기여 (어려운 기능도 API 몇 줄로 간단하게 구현)
  3. C++ 기반이나 Python도 지원 (JAVA, C# 등 다양한 언어 지원)

OpenCV 이미지 로딩

imread('파일명')를 이용한 이미지 로딩

  • 파일을 읽어 Numpy array로 변환

 

주의해야할 점 : 색감이 원본 이미지와 다르게 나타남

  • 이미지를 RGB 형태가 아닌 BGR 형태로 로딩
  • RGB: RED 계열
  • BGR: BLUE 계열

BGR을 RGB로 변환하기

cvtColor()를 이용하여 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()를 이용하여 파일에 쓰기 : imwrite('출력파일명', 이미지 배열)

  • 메모리에 있는 이미지 배열을 다시 파일에 저장

 

imread()로 읽고 imwrite()로 출력한 이미지 파일은 다시 RGB 형태가 됨

  • imread()로 인해 BGR 형태로 되어 있는 이미지 배열을 다시 RGB 형태로 변환하여 저장
import cv2
import matplotlib.pyplot as plt

img_array=cv2.imread('파일명')
cv2.imwrite('출력파일명', img_array)

OpenCV로 이미지 로드하기

  1. imread()
    • 원본 RGB 이미지를 BGR 형태의 Numpy 배열로 반환
  2. imwrite()
    • BGR 형태의 이미지 배열을 파일에 기록할 때 다시 RGB형태로 변환
    • RGB->BGR->RGB 변환에 신경쓰지 않아도 됨
import cv2

cv2_image = cv2.imread('/content/data/beatles01.jpg')
cv2.imwrite('/content/data/beatles02_cv.jpg', cv2_image)
print('cv_image type:', type(cv2_image), ' cv_image shape:', cv2_image.shape)

plt.figure(figsize=(10, 10))
img = plt.imread('/content/data/beatles02_cv.jpg')
plt.imshow(img)
#plt.show()

반환된 BGR image Numpy array 시각화 하기

cv2_image = cv2.imread('/content/data/beatles01.jpg')

plt.figure(figsize=(10, 10))
plt.imshow(cv2_image)
plt.show()

 


BGR에서 RGB로 변환하기

cv2_image = cv2.imread('/content/data/beatles01.jpg')
draw_image = cv2.cvtColor(cv2_image, cv2.COLOR_BGR2RGB)

plt.figure(figsize=(10, 10))
plt.imshow(draw_image)
plt.show()

복사했습니다!