Python 사진 가로 세로 사이즈 취득 OpenCV

사진 가로와 세로 사이즈를 취득하는 방법을 알아보겠습니다.

파이썬에는 OpenCV 또는 Pillow(PIL) 등등 사진 파일에 사용할 수 있는 라이브러리가 있습니다.

OpenCV와 Pillow(PIL)를 사용해 사진 사이즈를 취득하는 예제를 보겠습니다.

 

OpenCV

사이즈를 취득할 때 OpenCV를 사용하면 NumPy 배열 ndarray로 취득합니다.

ndarray 형태로 취득해 shape를 사용해 사진의 가로와 세로 사이즈를 취득할 수 있습니다.

먼저 샘플 사진은 아래 이미지를 사용하겠습니다.

 

사진에서 취득하는 내용은 세로(높이) x 가로(넓이) x 색(3) 정보를 취득합니다.

import cv2

img = cv2.imread('C:/Users/Administrator/Desktop/python/origin/python.png')

print(type(img))
print(img.shape)
print(type(img.shape))

 

결과

<class 'numpy.ndarray'>
(277, 500, 3)
<class 'tuple'>

 

타입은 튜플 형태로 세로(높이) x 가로(넓이) x 색(3)를 취득해왔습니다.

값을 하나씩 변수에 담고 싶은 경우는 변수 3개를 준비해 취득할 수 있습니다.

import cv2

img = cv2.imread('C:/Users/Administrator/Desktop/python/origin/python.png')

h, w, c = img.shape
print('width:  ', w)
print('height: ', h)
print('channel:', c)

 

결과

width:   500
height:  277
channel: 3

 

또는 인덱스를 설정해서도 값을 하나씩 취득할 수 있습니다.

import cv2

img = cv2.imread('C:/Users/Administrator/Desktop/python/origin/python.png')

print('width: ', img.shape[1])
print('height:', img.shape[0])

 

결과

width:   500
height:  277

   

Pillow(PIL)

사진 정보를 Pillow(PIL)를 사용해 취득하는 예제를 살펴보겠습니다.

from PIL import Image

im = Image.open('C:/Users/Administrator/Desktop/python/origin/python.png')

print(im.size)
print(type(im.size))
# (500, 277)
# <class 'tuple'>

w, h = im.size
print('width: ', w)
print('height:', h)
# width:  500
# height: 277


print('width: ', im.width)
print('height:', im.height)
# width:  500
# height: 277

 

Pillow(PIL)로 사진 정보를 취득하면 size 또는 width와 height로 사이즈를 취득할 수 있습니다.

size로 정보를 취득한 경우에는 튜플로 표시되기 때문에 가로와 세로 값을 따로 취득하기 위해서는 변수에 다시 저장해야 합니다.

width와 height는 가로 사이즈와 세로 사이즈를 바로 출력할 수 있습니다.

댓글