Azure Zest

[ python ] 사진 읽어오기 본문

Deep Learning

[ python ] 사진 읽어오기

LABONG_R 2019. 10. 21. 17:26

python을 이용해서 사진을 불러오고 읽어보자.

보편적으로 많이 사용되는 세가지 방법을 이용해서 불러올 수 있다.

 

1. Matplotlib 사용

import matplotlib.pyplot as plt

a = plt.imread('./파일이름.jpg')
plt.imshow(a) # 흑백으로 보고 싶을 땐, plt.imshow(a, cmap='gray')

a를 출력하게 되면 숫자 array가 나오고, 만약 사진을 출력하고 싶다면 plt.imshow를 사용한다.

 

2. Pillow 사용

import PIL.Image as pilimg

a = pilimg.open('./파일이름.jpg')
a

이 때, Maplotlib와 다른 점은 plt.imread는 array로 불러온다면, Piling.open은 이미지 자체를 불러오기 때문에 a를 출력하면 이미지 자체가 뜨게 된다.

바로 출력했을 때

따라서, array로 바꾸고 싶다면 다음과 같이 Numpy를 이용해서 바꿀 수 있다.

import numpy as np
import PIL.Image as pilimg

a = pilimg.open('./파일이름.jpg')
ap = np.array(a)

np.array()로 바꿔줬을 때

3. Opencv 사용

import cv2

a = cv2.imread('./파일이름.jpg')
cv2.imshow('title', a)
cv2.waitKey()

 이 때, 중요한 점은 cv2.waitKey()를 꼭 함께 써줘야한다는 점이다. 이 줄을 안쓴다면 다음과 같이 창은 뜨지만 사진은 나오지 않는 오류가 뜬다.

cv2.waitKey()를 안 썼을 때 나타나는 오류
제대로 cv2.waitKey()를 해줬을 때

 

Reference

각 library의 다른 함수들을 아래 홈페이지에서 찾아볼 수 있다.

Matplotlib

Pillow

Opencv