CE/OpenCV_python

[Opencv with Python] 이미지 읽고 처리하기! imread(), imwrite()

일구공구 2021. 2. 22. 18:06
본 내용은 구 version 문서 순서를 따라 공부했으며, opencv version은 colab의 4.1.2를 사용하였습니다.
문서를 참고하였으나 코드는 공부하면서 4version으로 변경하여 작성하였으므로 틀린내용이 있다면 댓글 부탁드립니다.

Image를 read 하고 modifying하는 과정

  • 이미지 읽기
  • Opencv 에서는 RGB 순이 아닌 BGR 순으로 이미지를 받음

cv2.imread('fileName', flag)

  • Parameters : fileName(str) , flag(int): Image파일 읽을 때 Option
  • Returns : image 객체 행렬
  • Return type : numpy.ndarray
    flag
  • cv2.IMREAD_COLOR : 이미지 파일을 Color로 읽어들입니다. 투명한 부분은 무시되며, Default값입니다.
  • cv2.IMREAD_GRAYSCALE : 이미지를 Grayscale로 읽어 들입니다. 실제 이미지 처리시 중간단계로 많이 사용합니다.
  • cv2.IMREAD_UNCHANGED : 이미지파일을 alpha channel까지 포함하여 읽어 들입니다.
  • 위에 것 대신 1, 0, -1로 사용해도 됨

1) 일반적인 환경

import cv2
import numpy as np # numpy 는 행렬계산에 이용되는 유용한 라이브러리!

img = cv2.imread('python.jpg') # 이미지를 읽고 싶을 때

img.shape # 3차원 행렬로 return  (Y축, X축, channels) -> 여기서 채널이란 RGB와 같은 표현 Grayscale값이면 channel이 1

cv2.imshow('label', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2) Colab의 경우

import cv2
import matplotlib.pyplot as plt
import numpy as np # numpy 는 행렬계산에 이용되는 유용한 라이브러리!

img = cv2.imread('office1.png') # 이미지를 읽고 싶을 때
img = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB) # 설명(1)참고
img.shape

plt.imshow(img)
cv2.waitKey()
cv2.destroyAllWindows()

(1) Colab에서는 matplot을 이용하여 그림을 그릴 수 있습니다. 하지만 matplot의 색채널과 opencv 색채널 순서에는 차이가 있으므로 변경해 주어야합니다.

cv2.imwrite('fileName, image)

  • Parameters : fileName(str) : 저장파일명, image : 저장이미지


[참고]