이미지 조작

../_images/34575689432_3de8e9a348_k_d.jpg

대부분의 이미지 처리 및 조작 기법은 두 라이브러리, 즉 Python Imaging Library(PIL)와 Open Source Computer Vision(OpenCV)을 사용하여 효과적으로 수행할 수 있습니다.

아래에 두 라이브러리에 대한 간단한 설명이 있습니다.

Python Imaging Library

Python Imaging Library, 줄여서 PIL은 파이썬에서 이미지 조작을 위한 핵심 라이브러리 중 하나입니다. 안타깝게도 2009년의 마지막 릴리즈 이후 개발이 정체된 상태입니다.

다행히 PIL의 활발히 개발 중인 포크인 Pillow 가 있습니다. 설치가 더 쉽고, 주요 운영체제에서 모두 동작하며, 파이썬 3을 지원합니다.

설치

Pillow를 설치하기 전에 Pillow의 사전 요구사항을 먼저 설치해야 합니다. Pillow 설치 안내 에서 사용 중인 플랫폼에 맞는 안내를 찾으세요.

그 다음은 간단합니다:

$ pip install Pillow

예시

from PIL import Image, ImageFilter
#Read image
im = Image.open( 'image.jpg' )
#Display image
im.show()

#Applying a filter to the image
im_sharp = im.filter( ImageFilter.SHARPEN )
#Saving the filtered image to a new file
im_sharp.save( 'image_sharpened.jpg', 'JPEG' )

#Splitting the image into its respective bands, i.e. Red, Green,
#and Blue for RGB
r,g,b = im_sharp.split()

#Viewing EXIF data embedded in image
exif_data = im._getexif()
exif_data

Pillow 라이브러리의 더 많은 예시는 Pillow 튜토리얼 에서 볼 수 있습니다.

Open Source Computer Vision

Open Source Computer Vision, 흔히 OpenCV로 알려진 이 소프트웨어는 PIL보다 더 발전된 이미지 조작 및 처리 도구입니다. 여러 언어로 구현되어 있으며 널리 사용됩니다.

설치

파이썬에서 OpenCV를 사용한 이미지 처리는 cv2NumPy 모듈을 사용하여 구현됩니다. OpenCV 설치 안내 를 따라 프로젝트를 직접 설정할 수 있습니다.

NumPy는 Python Package Index(PyPI)에서 다운로드할 수 있습니다:

$ pip install numpy

예시

import cv2
#Read Image
img = cv2.imread('testimg.jpg')
#Display Image
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

#Applying Grayscale filter to image
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#Saving filtered image to new file
cv2.imwrite('graytest.jpg',gray)

파이썬으로 구현된 OpenCV 예시는 이 튜토리얼 모음 에서 더 많이 볼 수 있습니다.