[Python 영상처리 기초 1] 이미지 파일 불러오기 - cv2.imread( ), plt.imshow( )
위의 이미지는 3차원의 RGB컬러 데이터 (세로x가로x채널수: 4500 x 6000 x 3)를 나타냅니다.
만일 이미지가 gray scale 혹은 black & white 이라면 2차원 (세로픽셀 x 가로픽셀) 의 데이터를
가지고, 컬러 이미지 라면 3차원 (세로픽셀 x 가로필셀 x 색상채널)의 데이터를 가지며,
색상채널은 B(파랑색) G(초록색) R(빨강색)의 데이터를 표현합니다.
( 주의 하세요! Python에서는 RGB가 아닌 BGR의 순서로 이미지 데이터를 나타냅니다. )
위 이미지는 본 블로그 맨밑 출처 1에 가셔서 다운로드 받을 수 있습니다.
Python에서 이미지 데이터를 다루기 위해 다양한 패키지들이 존재하는데
앞으로 OpenCV를 중심으로 Jupyter Notebook 환경에서 설명하겠습니다.
따라서 OpenCV 패키지를 반드시 설치하여 주시기 바랍니다.
이제 Jupyter Notebook에서 이미지를 불러와봅니다.
방법은 여러가지가 있겠으나 간단하게 OpenCV 명령어를 이용 해본다면
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
# img_color = cv2.imread('path/filename', cv2.IMREAD_COLOR)
img_color = cv2.imread('national-cancer-institute-jdfn7Z03Qa4-unsplash.jpg', cv2.IMREAD_COLOR)
plt.axis("off")
plt.imshow(cv2.cvtColor(img_color, cv2.COLOR_BGR2RGB))
plt.show()
우선 OpenCV와 Matplotlib 패키지를 import 하고, cv2.imread( ) 명령어를 실행합니다.
cv2.imread( )의 첫번째 입력 파라미터에는 이미지 파일이 존재하는 경로와 파일이름을,
두번째 입력 파라미터에는 컬러 이미지를 읽어들이겠다고 지정 하였습니다 cv2.IMREAD_COLOR.
읽어들인 이미지 데이터를 출력하기 위해 plt.imshow( ) 명령어를 이용하였는데
여기서 주의할 점은 색상채널의 순서 입니다.
이미지 데이터를 저장하는 img_color 변수에서 색상을 저장하는 순서는 - 위에서 지적하였듯이 -
B(파랑색) G(초록색) R(빨강색) 이므로, 이것을 R-G-B 순서로 바꾸어야 Jupyter Notebook에서
제대로 표현됩니다.
그러므로 BGR 순서의 컬러 이미지 데이터를 RGB 순서로 (= COLOR_BGR2RGB) convert 하겠다는
명령어를(= cvtColor) 입력 파라메타로써 인가 하였습니다.
또 한가지 중요한 점은, img_color 변수는 다차원의 NumPy arrays 속성을 갖습니다.
출처1: https://unsplash.com/photos/jdfn7Z03Qa4
사진 작가: National Cancer Institute, Unsplash
Cells from cervical cancer – Splash에서 National Cancer Institute의 이 사진 다운로드
unsplash.com