CE/OpenCV_python
[Opencv with Python] 이미지 읽고 처리하기! imread(), imwrite()
일구공구
2021. 2. 22. 18:06
본 내용은 구 version 문서 순서를 따라 공부했으며, opencv version은 colab의 4.1.2를 사용하였습니다.
문서를 참고하였으나 코드는 공부하면서 4version으로 변경하여 작성하였으므로 틀린내용이 있다면 댓글 부탁드립니다.
- 환경 : Google colab Google colab 파일 업로드 , 구글드라이브 사용
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 : 저장이미지
[참고]
최신 docs
docs.opencv.org